【发布时间】:2017-10-01 00:54:54
【问题描述】:
服务器类型:MSSQL 2014
我的字符串:VARCHAR '2/05/2017 7:54:51 PM'
我需要将其转换为任何受支持的 DateTime 格式(或者最好直接转换为纪元)。 它需要处理 NULL 和 ""(空白)行。
我花了好几个小时来搜索答案,谷歌却无济于事。令人沮丧的是存储格式与日期格式 131 仅略有不同。
我尝试过诸如;
FORMAT(CONVERT(DATETIME, '2/05/2017 7:54:51 PM'), 'dd/MM/yyyy hh:mm:ss')
CONVERT(DATETIME, '2/05/2017 7:54:51 PM',22)
CONVERT(DATETIME, '2/05/2017 7:54:51 PM',131)
/* SQL 错误 (241): 从字符串转换日期和/或时间时转换失败。 */
/* SQL 错误 (242):将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。 */
还有一大堆使用 SUBSTRING/CHARINDEX 等的方法来尝试单独处理每个部分,但无济于事。
【问题讨论】:
标签: sql-server tsql datetime sql-convert