从ORACLE转换到SQL Server的日期

时间:2014-10-03 15:06:12

标签: sql-server oracle

我正在将我的oracle数据库迁移到SQL Server。我需要帮助转换WHERE子句中的这一行代码

TO_DATE(TBL_TMX_ATTEMPT.LSTUPD) > (SYSDATE - '5') 

3 个答案:

答案 0 :(得分:1)

CONVERT(datetime,TBL_TMX_ATTEMPT.LSTUPD) > DATEADD(DAY,-5,GETDATE())

答案 1 :(得分:0)

你可以这样做:

WHERE CONVERT(DATETIME,TBL_TMX_ATTEMPT.LSTUPD) > GETDATE()-5

如果LSTUPD已经在日期时间,则省略CONVERT()。如果转换已经是正确的格式,则无需运行转换。

另请注意,GETDATE()包含时间戳。所以这是当前的日期/时间 - 5天。

如果你想在午夜前5天获得这个:

WHERE CONVERT(DATETIME,TBL_TMX_ATTEMPT.LSTUPD) > CONVERT(DATETIME,CONVERT(VARCHAR(10),GETDATE(),120))-5

答案 2 :(得分:0)

了解TBL_TMX_ATTEMPT.LSTUPD的数据类型非常重要。如果它是VARCHAR2或其他字符串类型(存储日期的BAD选择,顺便说一句),则需要在SQL Server中调用CONVERT时考虑日期格式。查看CONVERT函数的日期/时间样式参数以获取更多信息。

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )