为了账号安全,请及时绑定邮箱和手机立即绑定

如何时时刻刻地转换日期

如何时时刻刻地转换日期

慕运维8079593 2019-06-20 15:53:44
如何时时刻刻地转换日期我在铸造DateTime使用CAST语法。select CAST([time] as time) as [CSTTime]日期时间2015-03-19 00:00:00.000目前产出:时间03:05:36.0000000我只需要HH:MM:SS而不是毫秒或零零秒如何过滤或铸造它来精确HH:MM:SS格式。
查看完整描述

3 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

你可以用CAST只是简单的使用TIME(0)数据类型如下:

SELECT CAST('2015-03-19 01:05:06.289' AS TIME(0))

产出:

01:05:06


查看完整回答
反对 回复 2019-06-20
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

SQLServer 2008:

select cast(MyDate as time) [time] from yourtable

早期版本:

select convert(char(5), MyDate , 108) [time] from yourtable

其他备选方案:

SELECT CONVERT(VARCHAR(20), GETDATE(), 114)

从日期时间中获取时间的最简单方法无毫秒堆栈是:

SELECT CONVERT(time(0),GETDATE())

时时刻刻

SELECT substring(CONVERT(VARCHAR, GETDATE(), 108),0,6) AS Time


查看完整回答
反对 回复 2019-06-20
?
MMTTMM

TA贡献1869条经验 获得超4个赞

Time不与其存储在一起。显示格式在SQLServer中。
因此,从用户的角度来看,您可以说没有格式。
当然,这并不完全准确,因为它确实有一个存储格式,但作为普通用户,您不能真正使用它。
对于所有日期和时间数据类型都是这样:
DateDateTimeOffsetDateTime2SmallDateTimeDateTimeTime.

如果需要格式,则不需要将格式转换为time但对一个char..使用Convert为了得到char你需要:

SELECT CONVERT(char(10), [time], 108) as CSTTime

以下是一些背景数据,如果您感兴趣的话:

在……里面这篇文章作者于2000年出版,深入解释了SQLServer如何处理日期和时间。我怀疑在2000到2015年间SQL Server存储方式是否发生了重大变化datetimedatetime内部价值。

以下是相关的引语,如果您不想全部阅读的话:

那么SQLServer内部如何存储日期呢?它使用8个字节来存储日期时间值-前4个用于日期,第二个4个用于时间。SQLServer可以将这两组4字节解释为整数。
........
........
SQL Server存储时间的第二个整数,因为午夜后时钟会滴答作响。一秒钟包含300个滴答,因此一个滴答等于3.3毫秒(毫秒)。

time实际上是作为一个4字节整数存储的,它实际上没有作为数据类型不可分割的一部分的格式。

你也可以去看看这篇文章以获得更详细的代码示例说明。


查看完整回答
反对 回复 2019-06-20
  • 3 回答
  • 0 关注
  • 468 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信