2014-06-30 51 views
0

我有一個MS Access數據庫,其中表格的記錄有一個文本字段,它以表格的形式存儲29-Mar-14(以文本形式)的日期。我知道,這不是一個好的數據庫設計,但這是我的客戶端數據庫系統最初的開發方式,我無法修改它。在Access數據庫的SQL查詢中檢測週末

我的問題是:如何在此表上運行SQL Update命令,僅適用於週末記錄?所以基本上我需要在2點幫助:

  • 關於如何讓它把「29-MAR-14」的文本字段爲日期寫SQL語句,

  • 關於如何編寫SQL Update語句以便檢測哪些日期是週末。

謝謝!

+0

偉大的地方開始使用datepart fucntion。看到這個:http://www.sqlservercentral.com/Forums/Topic1119279-149-1.aspx –

+0

'SELECT CDATE(fieldName,'DD-MON-YY')'然後使用沒有特定表名的'weekday'函數,字段名稱,示例數據以及您想要更新的內容......我不確定還有什麼要提供的。因此評論不是答案。 – xQbert

+0

下面是一個只有一條記錄的數據庫的副本:https://dl.dropboxusercontent.com/u/30638883/db.mdb – user3791587

回答

0

這裏的挑戰是Access中的CDate()函數將把'29-Mar-14'解釋爲2029-03-14。所以,你需要換日間和年

CDate(Right(delivery_date,2) & "-" & Mid(delivery_date,4,3) & "-" & Left(delivery_Date,2)) 

上面會給你真正的日期值。要確定它是否爲週末日期,請將該日期值傳遞給Weekday()函數,並查看它是否返回1(vbSunday)或7(vbSaturday)。

+0

我仍然沒有得到預期的結果。我運行以下查詢:SELECT * FROM newspaper WHERE weekday(CDate(Right(delivery_date,2)&「 - 」&Mid(delivery_date,4,3)&「 - 」&Left(delivery_Date,2)))= 1;我收到的日期是「04年3月14日」和「10月3日」(星期二和星期一)。 – user3791587

+0

好吧,這是對我的系統工作的查詢:選擇*從星期六(CDate(delivery_date))= 1; (這選擇星期日)。感謝大家的貢獻。 – user3791587