我正在尝试存储13位数的时间戳,以便在MS SQL表中存储日期时间格式。 我在很多方面都尝试过并且在SO帖子中搜索过没有任何帮助。
输入代码: 1525939481255
必填格式:DD-MM-YYYY HH:MM:SS (12 hour time format)
我想将上述13位代码转换为上述格式。 任何人都可以帮我解决这个问题吗?
答案 0 :(得分:4)
我假设这是以毫秒为单位的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, 请告诉我,如果有这个帮助..
答案 1 :(得分:1)
试试这个:
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'
答案 2 :(得分:1)
UNIX time可以转换为正常日期时间,格式为您预期的格式:
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