我想要选择日期
SELECT [Dt]
,[CustomerName]
,[PayerName]
,[ItemRelation]
,[ProductName]
,[SaleCount]
,[DocumentNum]
,[DocumentYear]
,[IsPromo]
,[CustomerType]
,[koef]
FROM [Action].[dbo].[mytab1]
where dt> 2018-06-27
order by dt
Run Code Online (Sandbox Code Playgroud)
结果我得到了
Dt
2017-10-12 00:00:00.000
2017-10-12 00:00:00.000
2017-10-12 00:00:00.000
2017-10-12 00:00:00.000
2017-10-13 00:00:00.000
2017-10-13 00:00:00.000
2017-10-13 00:00:00.000
2017-10-13 00:00:00.000
2017-10-14 00:00:00.000
2017-10-14 00:00:00.000
Run Code Online (Sandbox Code Playgroud)
怎么了?为什么查询返回所有数据而不是> 2018-06-27
像肖恩所说的,这里的问题在于你使用的是数值表达式2018-06-27,它的计算结果为1985.如果转换1985为a datetime,则获得值1905-06-09 00:00:00.000,因此您的WHERE子句是有效的:
WHERE dt> '1905-06-09T00:00:00.000'
Run Code Online (Sandbox Code Playgroud)
就像肖恩也说的那样,使用一个文字字符串和一个明确的格式(这些是yyyyMMdd和yyyyMMddThh:mm:ss.sss.因此你的WHERE条款应该是:
WHERE dt > '20180627'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |