我正在将我的oracle数据库迁移到SQL Server。我需要帮助转换WHERE
子句中的这一行代码
TO_DATE(TBL_TMX_ATTEMPT.LSTUPD) > (SYSDATE - '5')
答案 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 ] )