【发布时间】:2015-12-10 12:44:09
【问题描述】:
从我目前阅读的内容来看,sql server 中的数据类型time(从 2008 年开始)应该能够以 HH:MM 格式存储时间。然后我自己尝试了以下简单的练习:
create table #mytable (id int, lat float, lon float, trajectory_id int, theTime time(5))
insert into #mytable values
('1','15.8','17.1','162','10:01'),
('2','11.5','59.7','162','10:02'),
('3','16.4','79.9','162','10:03'),
('4','29.5','10.3','180','11:12'),
('5','58.2','11.1','180','11:13'),
('6','54.5','14.1','180','11:14'),
('7','14.9','15.2','166','13:40'),
('8','15.0','13.1','166','13:42')
我对@987654324@ 列的预期结果是:
theTime
10:01
10:02
10:03
11:12
11:13
11:14
13:40
13:42
我得到的是:
theTime
10:01:00.00000
10:02:00.00000
10:03:00.00000
11:12:00.00000
11:13:00.00000
11:14:00.00000
13:40:00.00000
13:42:00.00000
当然,我可以选择left(theTime, 5) 并获得预期的结果。但我想知道如何以所需的格式直接插入它。
我想使用内置函数,而不是将数字存储在int 中,用于HH、MM、SS,就像在 sql server 2005 之前可能使用的那样。
使用 sql server 2012。谢谢
【问题讨论】:
-
如果您将字段类型定义为 TIME(0),它会将数据存储为 HH:MM:SS。 TIME 支持 0 到 7,它设置秒的小数部分的精度。不幸的是,您无法存储没有秒数的时间。您将需要在表示层中重新格式化您的数据。 msdn.microsoft.com/en-GB/library/bb677243.aspx
标签: sql sql-server time sql-server-2012