MS SQL : 将日期时间转换为符合 Web 标准的 TIME 格式
MS SQL : Convert datetime to web standards complient TIME format
根据网络规范的时间输入字段的官方格式。
W3 似乎表明接受的格式是:
23:20:50.52
17:39:57
http://www.w3.org/TR/html-markup/input.time.html
问题
- 时间输入字段应该完全填充秒和毫秒还是
00:00
可以接受?
来自 MS SQL 是 ISO8601 CONVERT 126 正确的格式或者是 SQL CONVERT 108 hh:mm:ss
可以接受吗?
CONVERT(VARCHAR(10),[MyDate]),108) AS [MyDate]
Click for list of SQL CONVERT() Functions
- 使用 convert 126 从 MSSQL 日期时间字段中提取格式正确的时间字段的适当方法是什么?
文档明确说明了可接受的时间值格式:
Value: A valid partial-time as defined in [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
应用到它。
根据网络规范的时间输入字段的官方格式。
W3 似乎表明接受的格式是:
23:20:50.52
17:39:57
http://www.w3.org/TR/html-markup/input.time.html
问题
- 时间输入字段应该完全填充秒和毫秒还是
00:00
可以接受?
来自 MS SQL 是 ISO8601 CONVERT 126 正确的格式或者是 SQL CONVERT 108
hh:mm:ss
可以接受吗?CONVERT(VARCHAR(10),[MyDate]),108) AS [MyDate]
Click for list of SQL CONVERT() Functions
- 使用 convert 126 从 MSSQL 日期时间字段中提取格式正确的时间字段的适当方法是什么?
文档明确说明了可接受的时间值格式:
Value: A valid partial-time as defined in [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
应用到它。