2016-03-21 34 views
2

我正在使用Access DB 2007 - 2010;我試圖導入很多CSV文件,但時間戳列無法正確導入。如何將字符串轉換爲日期並在Access查詢中提取值

因此,我將所有的CSV鏈接到Access數據庫,並試圖查詢所有的表。

我試圖從時間戳提取一年的年份和日期(這是目前一個字符串)

我想給Formatdatepart功能相結合,它不斷失敗。 (它只是說在表中的錯誤)

format功能本身的作品,但我不能將它與任何東西結合起來。

基本上,我想這樣做:

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

,但它失敗。我也試過CDateDateValue不同的組合,但都失敗了。

有誰知道如何讓這個工作?

UPDATE

format功能沒有做任何事情。無論我如何格式化,文本都保持不變。

這裏有一個日期時間示例:05日 - 12月13 2008年:40:01.955

+0

@HansUp:失敗;我添加了日期示例 – djm

+0

@HansUp:OMG!這工作!非常感謝!請添加,作爲解決方案,我可以upvote! – djm

回答

1

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>)會給你一年的一天。

相關問題