在 sql 服务器中将数据和时间转换为数字

Convert data and time into a numeric number in sql server

我有一个数据和时间格式列,我想在 Microsoft SQL 服务器中将其转换为以下格式:yyyymmddhhmmss00000

例如,如果我有 2021-02-04 11:49:50,这将被转换为 2021020411495000000

有人知道怎么做吗?

通过一次使用格式 112 将日期转换为 NVARCHAR,一次使用格式 8,您可以提取数字日期和没有毫秒的时间。删除 : 从那时起您可以连接这两个字符串并将它们转换为 bigint。下面举个例子:

DECLARE @d DATETIME = GETDATE()
SELECT CAST(CONVERT(NVARCHAR(8), @d, 112) + REPLACE(CONVERT(NVARCHAR(8), @d, 8), ':', '') + '00000' AS BIGINT)

您可以使用FORMAT函数:

SELECT FORMAT(myDate, 'yyyyMMddHHmmss00000')