我的日期时间行看起来像这种格式

1811011439
1811011439
1811011439
1811011439
1811011439
1811011439


它可以像这样阅读

Y. 18
M. 11
D. 01


如您所见,在第一行

任何人都可以指导我如何将其转换为日期可读格式。

最佳答案

您要将日期时间值的字符串表示形式(存储为bigint)转换为可读格式。在这种情况下,您可以将字符串/ bigint的日期部分CAST设置为DATE值:

SELECT CAST(LEFT(CAST(1811011439 AS VARCHAR), 6) AS DATE)
-- 2018-11-01


我建议使用DATETIME列而不是BIGINT列来存储这样的值。使用以下SELECT,您将获得所有DATETIME值:

SELECT CAST(SUBSTRING(CAST(1811011439 AS VARCHAR), 1, 6) + ' ' + SUBSTRING(CAST(1811011439 AS VARCHAR), 7, 2) + ':' + SUBSTRING(CAST(1811011439 AS VARCHAR), 9, 2) AS DATETIME)
-- 2018-11-01 14:39:00.000

09-28 14:33