繁体   English   中英

如何在mssql中将13位时间戳转换为日期和时间格式

[英]How to convert 13 digit timestamp to date and time format in mssql

我正在尝试存储13位时间戳以在MS SQL表中存储日期时间格式。 我已经尝试了很多方法,还搜索了SO帖子,对我没有帮助。

输入代码: 1525939481255

所需格式DD-MM-YYYY HH:MM:SS (12 hour time format)

我想将上面的13位代码转换为上面提到的格式。 谁能帮我解决这个问题?

我假设这是毫秒级的Unix时间,所以请尝试此查询

select CONVERT(VARCHAR(10),DATEADD(SECOND, 1525939481255/1000 ,'1970/1/1'),105)

抱歉,我错过了时间格式,

试试这个

select CONVERT(VARCHAR(10),DATEADD(SECOND, 1525939481255/1000 ,'1970/1/1'),105) + ' ' + FORMAT(DATEADD(SECOND, 1525939481255/1000 ,'1970/1/1'),'h:mm:ss tt')

CMIIW,如果有帮助,请告诉我。

尝试这个:

declare varchar(max) myDateTime = select dateadd(second, 1525939481255/1000 + 8*60*60, '19700101');

SELECT  REPLACE(
            REPLACE(
                RIGHT(
                    '0000000000' + 
                        CONVERT(
                        varchar(10), 
                        cast(myDateTime as time(0)), 
                        109),
                10), 
            'PM', 
            ' p.m.'),
        'AM',
        ' a.m.') as 'Time'
 , reverse(Left(myDateTime, 10)) as 'date'

UNIX时间可以转换为正常的日期时间,并将其格式设置为您期望的格式,如下所示:

DECLARE @DateValue AS BIGINT = 1525939481255;

SELECT  CONVERT(VARCHAR(10), DATEADD(SECOND, @DateValue/1000 ,'1970/1/1'), 105) + ' ' + 
        CONVERT(VARCHAR(15), CAST(DATEADD(SECOND, @DateValue/1000 ,'1970/1/1') AS TIME), 100)

输出:

10-05-2018 8:04AM

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM