Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 转换和排序varchar Date dd MMM yyyy_Sql Server_Date_Sql Server 2012 - Fatal编程技术网

Sql server 转换和排序varchar Date dd MMM yyyy

Sql server 转换和排序varchar Date dd MMM yyyy,sql-server,date,sql-server-2012,Sql Server,Date,Sql Server 2012,我正在使用一个日期为varchar的表。日期格式示例: 2015年6月17日 我尝试了以下方法将日期(dd-MMM-yyy)转换和排序为dateTime SELECT date, name, author FROM sometable ORDER BY CONVERT(DATETIME, date, 106) DESC 我还尝试转换select语句中的日期。不起作用。错误是 从字符串转换日期和/或时间时,转换失败 转换类型通过一些类似的问题,但我没有找到任何解决方案的格式,我有。有没有办法在日

我正在使用一个日期为varchar的表。日期格式示例: 2015年6月17日 我尝试了以下方法将日期(dd-MMM-yyy)转换和排序为dateTime

SELECT date, name, author
FROM sometable
ORDER BY CONVERT(DATETIME, date, 106) DESC
我还尝试转换select语句中的日期。不起作用。错误是

从字符串转换日期和/或时间时,转换失败

转换类型通过一些类似的问题,但我没有找到任何解决方案的格式,我有。有没有办法在日、月和年之间选择分隔符

我还浏览了这个链接,其中有
datetime
格式。106最接近我的
varchar
日期。表中只有我的日期在日、月和年之间有“-”


感谢您的帮助。

使用106转换日期格式应该是绝对正确的

但是我猜您的表中包含了导致错误的列中的一些无效值,请尝试通过以下方式将它们识别出来:


我将使用日期样式
113
转换为日期时间格式,如下所示:

DECLARE @date VARCHAR(20) = '17-Jun-2015';

SELECT CONVERT(VARCHAR(20),CAST(@date AS DATETIME),113)
DECLARE @date VARCHAR(20) = '17-Jun-2015';

SELECT CONVERT(VARCHAR(20),CAST(@date AS DATETIME),113)