我想知道如何使用datetime convert查询数据:
在ORACLE中使用的示例:
WHERE TO_CHAR(FQA_END_DATE,'YYYY-MM-DD') = '2014-03-25'
在SQL Server中怎么样?
WHERE ...
请提供建议。
由于
答案 0 :(得分:0)
在sql server中,您可以执行类似
的操作WHERE CAST(Date_Column AS DATE) = '20140325' --<-- 'YYYYMMDD' ANSI Standard
或
WHERE CAST(Date_Column AS DATE) = CAST(GETDATE() AS DATE)
答案 1 :(得分:0)
如果FQA_END_DATE是日期时间数据类型;您不需要转换为字符以将其与字符串进行比较。您只需要以不显眼的格式提供字符串,例如ISO格式yyyyMMdd;
因此,如果FQA_END_DATE是日期时间,则可以使用:
WHERE FQA_END_DATE = '20140325'
但是,如果FQA_END_DATE包含时间部分以及日期,并且您只对比较日期部分(并且您没有DATE数据类型)感兴趣,那么这个数字很好方法存在,但一个技巧是通过浮点运行它;
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可以自动转换它。