goo*_*yui 18 sql sql-server sql-server-2008
我DateTime
使用CAST
语法将字段输入到时间.
select CAST([time] as time) as [CSTTime]
Run Code Online (Sandbox Code Playgroud)
约会时间
2015-03-19 00:00:00.000
现在输出:时间
03:05:36.0000000
我只需要HH:MM:SS
而不是毫秒或0000
如何过滤或将其转换为精确HH:MM:SS
格式.
Zoh*_*led 26
Time
未在SQL Server中以其显示格式存储.
因此,从用户的角度来看,可以说它没有格式.
当然,这并不完全准确,因为它确实具有存储格式,但作为普通用户,您无法真正使用它.
这是所有的日期和时间数据类型真:
Date
,DateTimeOffset
,DateTime2
,SmallDateTime
,DateTime
和Time
.
如果你需要一种格式,那么你不需要转换time
为a char
.用于Convert
满足char
您的需求:
SELECT CONVERT(char(10), [time], 108) as CSTTime
Run Code Online (Sandbox Code Playgroud)
如果您有兴趣,这里有一些背景数据:
在2000年发表的这篇文章中,作者深入解释了SQL Server如何处理日期和时间.我怀疑在SQL Server存储方式和内部值方面date
,2000年和2015年之间是否有任何重大变化.time
datetime
以下是相关引用,如果您不想阅读所有内容:
那么SQL Server如何在内部存储日期?它使用8个字节来存储日期时间值 - 日期的前4个和时间的第4个.SQL Server可以将两个4字节集合解释为整数.
........
........
SQL Server将时间的第二个整数存储为午夜后的时钟滴答数.第二个包含300个刻度,因此刻度等于3.3毫秒(ms).
因为time
实际上存储为4字节整数,所以它实际上没有格式作为数据类型的组成部分.
您可能还想查看本文以获取有关代码示例的更详细说明.
Sta*_*vas 10
您CAST
只需使用TIME(0)
以下简单的use 数据类型即可实现:
SELECT CAST('2015-03-19 01:05:06.289' AS TIME(0))
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
01:05:06
归档时间: |
|
查看次数: |
66203 次 |
最近记录: |