我有多个来自oracle数据库的语句,需要在SQL Server中使用它们
insert into COMENZI (NR_COMANDA, DATA, MODALITATE, ID_CLIENT, STARE_COMANDA, ID_ANGAJAT) values (2456, to_timestamp('08-11-1998 07:53:25.989889', 'dd-mm-yyyy hh24:mi:ss.ff'), 'direct', 117, 0, 163); insert into COMENZI (NR_COMANDA, DATA, MODALITATE, ID_CLIENT, STARE_COMANDA, ID_ANGAJAT) values (2457, to_timestamp('01-11-1999 09:22:16.162632', 'dd-mm-yyyy hh24:mi:ss.ff'), 'direct', 118, 5, 159);
如何创建函数to_timestamp返回具有给定值的DateTime?
以下在SQL Server 2008(SQL Fiddle)中起作用:
select convert(datetime, left(t, 10), 105) + convert(time, substring(t, 12, 12), 114) from (select '01-11-1999 09:22:16.162632' as t) t;
具有讽刺意味的是,它在SQL Server 2012中不起作用。在那里,我认为您必须这样做:
select dateadd(ms, datediff(ms, 0, convert(datetime, substring(t, 12, 12), 114)), convert(datetime, left(t, 10), 105) ) from (select '01-11-1999 09:22:16.162632' as t) t;
请注意,在两种情况下,这都使用毫秒而不是微秒。我不认为SQL Server可以提供如此精确的日期时间值。