【发布时间】:2013-12-13 14:04:47
【问题描述】:
我正在尝试将日期转换为mm/dd/yyyy 格式
select convert(date,'31/12/2013',101)
但我收到此错误
消息 241,第 16 级,状态 1,第 1 行
从字符串转换日期和/或时间时转换失败。
如何做到这一点?我的系统(Windows 7)有dd-mm-yyyy 格式.. 系统日期格式会对它有影响吗?`
【问题讨论】:
标签: sql sql-server
我正在尝试将日期转换为mm/dd/yyyy 格式
select convert(date,'31/12/2013',101)
但我收到此错误
消息 241,第 16 级,状态 1,第 1 行
从字符串转换日期和/或时间时转换失败。
如何做到这一点?我的系统(Windows 7)有dd-mm-yyyy 格式.. 系统日期格式会对它有影响吗?`
【问题讨论】:
标签: sql sql-server
见
http://msdn.microsoft.com/en-us/library/ms187928.aspx
101 是美国风格(mm/dd/yyyy)
试试 103 (dd/mm/yyyy) 这是英国/法国
SELECT CONVERT(DATE, '31/12/2013', 103)
【讨论】:
样式 101 是 US 样式,所以这有月份在前 - 你的字符串代表第 31 个月的第 12 天 ....
您需要使用的是样式 103(英国/法国),它首先使用日期 - 所以这个字符串是 12 月 31 日:
SELECT CONVERT(DATE, '31/12/2013', 103)
参见CAST 和CONVERT 上的the official MSDN SQL Server Books Online Documentation 以及定义了哪些样式以及它们的含义
【讨论】: