SQL Server如何计算输入日期的格式?

tm_*_*llo 3 sql t-sql sql-server

我使用SQL Server 2014 Developer.假设我有这种情况,我过滤发票的付款日期

select * 
from Invoices 
where PaymentDate > '1/2/2012'
Run Code Online (Sandbox Code Playgroud)

Invoice表中,PaymentDate格式为2012-01-08 00:00:00 ( YYYY-MM-DD HH:MM:SS )

但是RHS的操作数在哪里是1/2/2012这样的,SQL如何知道这是以格式M/D/YYYY还是D/M/YYYY

Mit*_*eat 7

日期时间没有格式(二进制除外):它们(希望)存储为datetime而不是字符串.不要将表达与表示混淆.

如果您有字符串文字,'1/2/2012'SQL Server将通过您的语言环境进行解释.

始终以ISO 8601格式yyyy-MM-dd(yyyyMMdd)使用(和导出)日期的最佳做法.

请参阅ISO 8601
什么日期/时间文字格式是LANGUAGE和DATEFORMAT安全?

  • 对于ISO推荐+1 (3认同)