使用Datetime Convert在Microsoft SQL Server中进行查询

时间:2014-03-26 09:13:55

标签: php sql-server

我想知道如何使用datetime convert查询数据:

在ORACLE中使用的示例:

WHERE TO_CHAR(FQA_END_DATE,'YYYY-MM-DD') = '2014-03-25'

在SQL Server中怎么样?

WHERE ...

请提供建议。

由于

2 个答案:

答案 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可以自动转换它。