2012-10-21 43 views
1

有一個下表:如何將單個字段轉換爲計算星期的SQLite日期?

CREATE TABLE `foo`(
    `year` INT NOT NULL, 
    `month` INT NOT NULL, 
    `day` INT NOT NULL, 
    `hour` INT NOT NULL, 
    `minute` INT NOT NULL, 
    `value` INT NOT NULL, 
    PRIMARY KEY(`year`, `month`, `day`, `hour`, `minute`) 
); 

如何選擇所有的SQLite週一的記錄?

+1

我會與平日增加一列。 –

+0

檢查這個問題:http://stackoverflow.com/questions/4319302/sqlite-return-as-day-of-week – fableal

回答

2
  1. 轉換日期成格式understood by SQLite,這就需要用零到所需的四/兩位數字段寬度以獲得YYYY-MM-DD填充;
  2. 那麼就使用strftime('%w')拿到工作日:
SELECT * 
FROM foo 
WHERE strftime('%w', 
       substr('000' || year, -4) || '-' || 
       substr('0' || month, -2) || '-' || 
       substr('0' || day, -2)   ) = '1' 
+0

尼斯'substr'技巧處理零填充,比可怕的案件長度(月)當1然後'0'||月其他月末'我在想。 –

+0

嗨。我終於回到了這個任務,並在實踐中嘗試了你的答案,實際上它並不起作用 - 說「函數substr()的參數數量錯誤」。 – Ivan

+0

適合我。你的SQLite早於3.5.2嗎? –

相關問題