首页 > 解决方案 > 将 SQL BigInt as 1811011439 转换为日期时间格式

问题描述

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

1811011439
1811011439
1811011439
1811011439
1811011439
1811011439

可以这样读

Y. 18
M. 11
D. 01 

如您所见,在第一行

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

标签: sqlsql-servertsql

解决方案


您希望将日期时间值(存储为 bigint)的字符串表示形式转换为可读格式。在这种情况下,您可以CAST将字符串 / bigint 的日期部分设置为一个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

推荐阅读