我刚刚开始学习SQL并将其与Microsoft Access 2013中的数据库一起使用。使用此数据库,我每周导入一次CSV,然后查询选择某些字段。其中一个字段是不规则的时间戳,我必须将其导入为短文本(例如格式:" 2015-07-03T02:47:21 + 00:00和#34;)。
在我的Select查询中,我使用以下代码将时间戳转换为可用的DateTime(并减去7个小时):FORMAT(DATEADD("h", -7, MID(PurchaseDate,1,10) + " " + MID(PurchaseDate,12,8)), "M/D/YY H:MM") AS OrderDate
当应用于上面的示例时,返回" 7/2/15 19 :47:21"这正是我想要的。
但是,查询不会将结果识别为日期,也不会让我将它们过滤/排序为日期。有没有办法以日期格式输出此输出,以便我可以按日期和时间排序和筛选?提前谢谢。
答案 0 :(得分:3)
DATEADD
函数应返回有效的日期数据类型。使用FORMAT
函数时,您将日期转换为字符串。只是不要使用format函数,表达式应该作为日期数据类型返回:
DATEADD("h", -7, MID(PurchaseDate,1,10) + " " + MID(PurchaseDate,12,8)) AS OrderDate
答案 1 :(得分:0)
尝试使用DateValue函数将日期字符串转换为日期类型。