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?
日期时间没有格式(二进制除外):它们(希望)存储为datetime而不是字符串.不要将表达与表示混淆.
如果您有字符串文字,'1/2/2012'SQL Server将通过您的语言环境进行解释.
始终以ISO 8601格式yyyy-MM-dd(yyyyMMdd)使用(和导出)日期的最佳做法.
请参阅ISO 8601
什么日期/时间文字格式是LANGUAGE和DATEFORMAT安全?