我正在DateTime
通过使用CAST
语法将字段转换为时间。
select CAST([time] as time) as [CSTTime]
约会时间 2015-03-19 00:00:00.000
当前输出:时间 03:05:36.0000000
我只需要HH:MM:SS
而不是毫秒或0000
如何将其过滤或转换为精确HH:MM:SS
格式。
Time
不以其显示格式存储在SQL Server中。
因此,从用户角度来看,您可以说它没有格式。
当然,由于它确实具有存储格式,因此并不完全准确,但是作为普通用户,您不能真正使用它。
这是所有的日期和时间数据类型真:
Date
,DateTimeOffset
,DateTime2
,SmallDateTime
,DateTime
和Time
。
如果需要格式,则无需强制转换time
为char
。使用Convert
以获得char
您需要:
SELECT CONVERT(char(10), [time], 108) as CSTTime
如果您有兴趣,请参考以下背景数据:
在2000年发表的这篇文章中,作者深入解释了SQL Server如何处理日期和时间。我怀疑,如果有任何显著的方式SQL Server存储2000和2015年之间变化date
,time
和datetime
值在内部。
如果您不想全部阅读,请参考以下相关报价:
那么,SQL Server如何在内部存储日期?它使用8个字节存储日期时间值-前4个用于日期,后4个用于时间。SQL Server可以将两组4个字节解释为整数。
........
........
SQL Server将时间的第二个整数存储为午夜之后的时钟滴答数。一秒钟包含300个滴答声,因此滴答声等于3.3毫秒(ms)。
由于time
实际上是以4字节整数存储的,因此它实际上没有格式作为数据类型的组成部分。
您可能还需要查看本文,以获取有关代码示例的更详细说明。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句