我正在使用Access DB 2007 - 2010;我尝试导入许多CSV文件,但时间戳列无法正确导入。
所以我将所有CSV链接到Access数据库,我正在尝试查询所有表格。
我正在尝试从时间戳(当前是一个字符串)中提取一年中的年份和日期
我正在尝试将Format
和datepart
功能结合起来,并且它一直在失败。 (它只是说表中的错误)
format
函数本身可以工作,但我不能将它与任何东西结合起来。
我基本上是想这样做:
select datepart("y", Format(gmt, "dd-mmm-yyyy hh:nn:ss")) as DOY from Table1;
但它失败了。我也尝试了不同组合中的CDate
和DateValue
,但都失败了。
有谁知道如何让它发挥作用?
更新
format
函数没有做任何事情。无论我如何尝试格式化,文本都保持不变。
这是一个日期时间样本:05-Dec-2008 13:40:01.955
答案 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>)
将为您提供一年中的这一天。