我想知道如何对显示日期格式为mm / dd / yyyy的数据的文本列进行排序。
答案 0 :(得分:5)
您首先必须转换为日期才能获得正确的排序。这是一个将Datetext转换为RealDate的查询,然后对该列(字段)进行排序。您也可以单击标题以选择排序顺序。
SELECT
t.ID,
t.Datetext,
DateSerial(Mid([Datetext],InStrRev([Datetext],"/")+1),
Mid([Datetext],1,InStr([Datetext],"/")-1),
Mid([Datetext],InStr([Datetext],"/")+1,
(InStrRev(Datetext,"/")-InStr([Datetext],"/"))-1)) AS RealDate
FROM Table t
Order By 3
您可以使用IIf来避免来自null的错误:
IIf([Datetext] Is Null,Null,DateSerial(
Mid([Datetext],InStrRev([Datetext],"/")+1),
Mid([Datetext],1,InStr([Datetext],"/")-1),
Mid([Datetext],InStr([Datetext],"/")+1,
(InStrRev(Datetext,"/")-InStr([Datetext],"/"))-1))) AS RealDate
答案 1 :(得分:2)
在评论中,您说这是一个“文本列,显示来自sql表的日期”。我不确定你的意思,但我认为如果你可以将文本列转换为实际的日期/时间列,情况会更简单。
如果您将从SQL Server导入数据导入Access,请在将这些文本值提取到Access时转换这些文本值。
如果Access表是SQL Server对象的链接,请在SQL Server中创建一个视图,该视图将文本日期列强制转换为与Access兼容的日期类型。然后在Access端,使用指向视图的链接替换现有链接。
如果您需要在Access中编辑日期值,而不仅仅是显示和排序它们,请在视图中包含原始文本列和转换后的日期版本。您的Access是否对文本列进行了编辑;在日期/时间列上排序。