【问题标题】:MS SQL : Convert datetime to web standards complient TIME formatMS SQL:将日期时间转换为符合 Web 标准的 TIME 格式
【发布时间】:2015-05-31 16:04:33
【问题描述】:
【问题讨论】:
标签:
sql-server
html
datetime
input
time
【解决方案1】:
文档清楚地说明了时间值的可接受格式:
值:[RFC 3339] 中定义的有效部分时间。
relevant part of RFC 3339 具有以下定义:
time-hour = 2DIGIT ; 00-23
time-minute = 2DIGIT ; 00-59
time-second = 2DIGIT ; 00-58, 00-59, 00-60 based on leap second
; rules
time-secfrac = "." 1*DIGIT
partial-time = time-hour ":" time-minute ":" time-second
[time-secfrac]
这意味着 partial-time 由小时(2 位,24 小时表示法)、后跟冒号 (:)、后跟分钟(2 位)和另一个冒号,后跟秒,然后 可选 后跟小数部分(小数点后跟 1 个或多个数字)。
因此,秒是强制性的,但小数部分是可选的,这意味着 00:00 不是 RFC 3339 定义的有效 partial-time,但 00:00:00 很好,因为是00:00:00.0、00:00:00.000、00:00:00.0000 和其他变体。
至于CONVERT 函数,108 样式符合规范,如果您不需要毫秒(或纳秒等),可以使用它。如果您想要毫秒,您可以使用样式 114 并将最后一个 : 替换为 . 或者您可以使用样式 121 或 126 并仅提取时间部分。如何提取它?好吧,CONVERT 会给你一个字符串,所以只需使用正确的参数将SUBSTRING 应用于它。