将nvarchar转换/转换为datetime(2)

时间:2020-10-01 13:26:29

标签: sql sql-server sql-server-2012 sql-tuning

自从我上次描述得很差

我有桌子:

id   time_stamp
1    12.01.20 15:34:34,000000000 EUROPE/PRAGUE
2    10.01.20 10:15:15,000000000 EUROPE/PRAGUE
3    09.01.20 05:55:42,000000000 EUROPE/PRAGUE

表中有大量这些数据。列时间戳是数据类型“ nvarchar”。而且我需要按日期对数据进行排序或在WHERE子句中按日期进行约束,因此我需要将“时间戳”转换为日期时间。但是我不能。我尝试进行转换和转换,但仍然失败。

从@Larnu那里我得到了建议,但是没有用,因为我很愚蠢并且不准确地描述了问题。

UPDATE dbo.YourTable
SET [timestamp] = CONVERT(nvarchar(20),TRY_CONVERT(datetime2(0), [timestamp], 104), 126);

现在,您可以更改表并将数据类型更改为datetime2(0):

ALTER TABLE dbo.YourTable ALTER COLUMN [timestamp] datetime2(0) NULL;

有关如何更改time_stamp列的任何建议。

谢谢。

0 个答案:

没有答案
相关问题