SQL Server日期格式功能

Rob*_*ave 5 sql sql-server

SELECT CONVERT(VARCHAR(10), GETDATE(), 105)  
Run Code Online (Sandbox Code Playgroud)

此查询以[DD-MM-YYYY]格式返回日期为varchar.我需要在sql server中的datetime数据类型中使用相同的格式.请帮助我

Ada*_*Dev 3

在 SQL Server 中,DATETIME 数据类型存储为 2 个 4 字节整数,因此没有这样的特定格式。

如果要以特定格式返回日期,则需要将其转换为 VARCHAR,并指定适当的格式标识符。

如果您在 VARCHAR 中有一个日期时间,并且希望将其存储在 SQL Server 中的 DATETIME 字段中,那么您应该确保以始终可以安全解释的格式将该值传递给 SQL。例如,dd/mm/YYYY 格式并不安全,因为根据设置,它在输入时可能会被视为 mm/dd/yyyy。安全格式是:

yyyyMMdd
yyyy-MM-ddThh:mi:ss.mmm
Run Code Online (Sandbox Code Playgroud)

例如

INSERT MyTable (DateField) VALUES ('01/10/2010') -- dd/MM/yyyy not safe
INSERT MyTable (DateField) VALUES ('20101001') -- yyyyMMdd safe
Run Code Online (Sandbox Code Playgroud)

更新:
当您选择 DATETIME 字段(GETDATE()、字段、变量...)时,您在 SSMS 中看到的是一个格式化值,因为这对您有用,而不是显示其实际的内部 8 字节表示形式。