我想知道如何使用datetime转换查询数据:
示例:
WHERE TO_CHAR(FQA_END_DATE,'YYYY-MM-DD') = '2014-03-25'
SQL Server呢?
WHERE ...
请帮忙指点。
谢谢
在sql server中可以这样做
WHERE CAST(Date_Column AS DATE) = '20140325' --<-- 'YYYYMMDD' ANSI Standard
或
WHERE CAST(Date_Column AS DATE) = CAST(GETDATE() AS DATE)
如果FQA_END_DATE是datetime数据类型;您不需要将其转换为字符以将其与字符串进行比较。您只需要以明确的格式提供字符串,例如ISO格式yyyyMMdd;
所以如果FQA_END_DATE是一个日期时间,这将工作:
WHERE FQA_END_DATE = '20140325'
但是,如果FQA_END_DATE包含时间部分和日期,并且您只对比较日期部分感兴趣(并且您没有date数据类型),则存在许多方法,但一个技巧是运行它超过float;
WHERE CAST(FLOOR(CAST(FQA_END_DATE AS FLOAT)) AS DATETIME) = '20140325'
转换/删除datetime变量的时间部分。同样也可以通过使用DATEPART或DATEDIFF函数来实现。
最终-您可以使用CONVERT将WHERE的两边转换为相同的日期格式;
WHERE CONVERT(DATETIME, FQA_END_DATE, 112) = CONVERT(DATETIME, '20140325', 112)
解决这个问题的方法有很多,希望能给大家一些启发。
我能给你的最好的建议是,如果处理日期作为字符串,使用yyyyMMdd(20140325)的ISO格式,因为SQL Server可以自动转换。