如何将字符串转换为日期并在Access查询

时间:2016-03-21 15:33:00

标签: ms-access ms-access-2007

我正在使用Access DB 2007 - 2010;我尝试导入许多CSV文件,但时间戳列无法正确导入。

所以我将所有CSV链接到Access数据库,我正在尝试查询所有表格。

我正在尝试从时间戳(当前是一个字符串)中提取一年中的年份和日期

我正在尝试将Formatdatepart功能结合起来,并且它一直在失败。 (它只是说表中的错误)

format函数本身可以工作,但我不能将它与任何东西结合起来。

我基本上是想这样做:

select datepart("y", Format(gmt, "dd-mmm-yyyy hh:nn:ss")) as DOY from Table1;

但它失败了。我也尝试了不同组合中的CDateDateValue,但都失败了。

有谁知道如何让它发挥作用?

更新

format函数没有做任何事情。无论我如何尝试格式化,文本都保持不变。

这是一个日期时间样本:05-Dec-2008 13:40:01.955

1 个答案:

答案 0 :(得分:2)

Access无法处理日期字符串中的毫秒数。

使用Left()排除它们并将生成的子字符串提供给CDate()

SELECT CDate(Left(gmt, 20)) AS date_from_string
FROM Table1;

获得有效的日期/时间值后,您可以使用Year(<Date/Time value>)DatePart("yyyy", <Date/Time value>)来提取年份。 DatePart("y", <Date/Time value>)将为您提供一年中的这一天。