我有一个日期列和一个整数的时间列
我像这样转换了日期部分
select convert(int, convert(varchar(10), getdate(), 112))
我以为我可以对这个以HH:mm:ss
给出时间的查询做同样的事情SELECT CONVERT(VARCHAR(8), GETDATE(), 108)
如何将时间转换为整数?
答案 0 :(得分:6)
这应该将您的时间转换为表示午夜秒数的整数。
SELECT (DATEPART(hour, Col1) * 3600) + (DATEPART(minute, Col1) * 60) + DATEPART(second, Col1) as SecondsFromMidnight FROM T1;
答案 1 :(得分:4)
假设您正在寻找代码“日期”部分的“时间”类比,该部分需要YYYYMMDD
并将其转换为INT
,您可以:
HH:mm:ss
格式开头
HHmmss
INT
例如:
SELECT REPLACE(
CONVERT(VARCHAR(8), GETDATE(), 108),
':',
''
) AS [StringVersion],
CONVERT(INT, REPLACE(
CONVERT(VARCHAR(8), GETDATE(), 108),
':',
''
)
) AS [IntVersion];
答案 2 :(得分:-1)
您可以使用午夜和当天时间之间的差异。例如,使用getdate(),您可以通过此查询知道当天的时间百分比:
select convert(float,getdate()-convert(date,getdate()))
然后,您可以将此数字转换为秒数
select convert(int,86400 * convert(float,getdate()-convert(date,getdate())))
你将从午夜获得秒数