首页 > 解决方案 > 'TO_TIMESTAMP(TO_CHAR(TO_DATE(' SQL Server 中的语句

问题描述

我有一个长的(Oracle)SQL 查询,开头是这样的:

SELECT 0 run_id, 
0 tran_id,
0 sort_id,
' ' tran_type,
10 prod_id,
72 type_id,
1 value,  
TO_TIMESTAMP(TO_CHAR(TO_DATE(
'2016-03-18 00:00:00',
'YYYY.MM.DD HH24:MI:SS') 
+ rownum -1,
'YYYY.MM.DD')  

现在我想在 SQL Server 中做一个等效的查询,但我不知道该怎么做TO_TIMESTAMP(TO_CHAR(TO_DATE()))。一个名为 SQLines 的工具给了我这样的东西:TO_TIMESTAMP(ISNULL(TO_CHAR(CONVERT(DATETIME, '2016-03-18 00:00:00', 'YYYY.MM.DD HH24:MI:SS')但它显然是错误的。SQL Server 中是否有任何等效的语句?

标签: sqlsql-serveroraclemigration

解决方案


我认为逻辑是:

SELECT . . . 
       DATEADD(day, ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) - 1,
               '2016-03-18'
              );

推荐阅读