我只是在尝试按具有以下格式的日期的获取日期列进行排序:'04/02/2019'
等...我已经在新表中创建了名为ACQ_DATE_CONVERTED
的列,通常得到如下结果:2019-04-02
。相反,我得到了
错误消息241(从字符串转换日期和/或时间时转换失败)
我尝试了以下方法:
SELECT [ITEM], [ACQ_DATE],
CONVERT(DATE,[ACQ_DATE]) AS ACQ_DATE_CONVERTED
,' ' AS MFG
INTO [ABC].[dbo].[My_Store_records_CONVERTED]
FROM [ABC].[dbo].[My_Store_records]
结果查询后,我按ACQ_Date_Converted
排序。
SELECT [ITEM], [ACQ_DATE]
FROM [ABC].[dbo].[My_Store_records_CONVERTED]
ORDER by [ACQ_DATE_CONVERTED]
我的预期结果应在表中如下所示:
Column_A Column_B ColumnC
Rows ITEM ACQ_DATE ACQ_DATE_CONVERTED
1. ITEM_1 04/09/2007 2007-04-09
2. Store item 01/26/2008 2008-01-26
etc...
答案 0 :(得分:0)
能否请您尝试以下查询:
REPLACE(CONVERT(VARCHAR(10), [ACQ_DATE], 111), '/', '-') AS ACQ_DATE_CONVERTED
由于您是从ACQ_DATE
进行转换的,因此可以使用ORDER BY [ACQ_DATE]
,它将起作用。
答案 1 :(得分:0)
感谢所有为这一问题提供帮助的人。
我发现我要排序的列的所有单元格中都有一个隐藏的字符;因此,导致每一行都失败。但是,通过以下内容,我得以克服了这一绊脚石。希望遇到此问题的任何人都能从下面找到我的解决方案。
删除隐藏字符。
, REPLACE([ACQ_DATE], CHAR(10),'') AS [ACQ_DATE_CONVERTED]
,' ' AS MFG
INTO [ABC].[dbo].[My_Store_records_CONVERTED]
FROM [ABC].[dbo].[My_Store_records]
并按ACQ_DATE_Converted对新表进行排序;
ALTER TABLE [ABC].[dbo].[My_Store_records_CONVERTED] ALTER COLUMN [ACQ_DATE_CONVERTED] DATE NULL;
然后是当然
ORDER by [ACQ_DATE_CONVERTED]
最好的问候, 敏捷