2011-11-11 55 views
3

我想獲取當前的一週在SQLite中的日期比較。 上個月,去年,今天,昨天......我沒有問題...但是沒有找到解決方案以獲得當前的一週。SQLite:獲取當前周

我嘗試很多東西,如:

SELECT tastings.* FROM tastings 
WHERE (DATE(tastings.date) > DATE('now','weekday 1','+ 7 days')) 

你能幫助我嗎?謝謝。

+4

您是指一年中的哪一週?在%W週年:00-53? –

回答

0

tastings.date列中存儲了什麼?請注意,SQLite沒有「時間戳」類型親和力,所以可能您存儲文本(日期的某些表示)或整數(茱莉安日,時代...)

所有時間和日期函數預計有效的time string並將該時間字符串轉換爲其他字符串格式如果tastings.date包含一個星期數,然後使用:

AND cast(tastings.date AS TEXT) = strftime('%W','now') 
0

這可以幫助我比較兩個日期使用一年的一週。

AND (strftime('%W', tastings.date) = strftime('%W', 'now')) 

謝謝你。

3

此代碼爲您提供了週數,其中一週的第一天是星期一。它也適用於今年的最後一週和第一週。

strftime('%W', 'now', 'localtime', 'weekday 0', '-6 days') 
+0

你是一個拯救生命的人。我在PROD中使用了'DATE('now','localtime','weekday 1',' - 7 days')',這使得該應用變得瘋狂。 – faizal

0

我猜你想比較2個日期,假設你有一個表名爲_testTbl並有3列_id INTEGER_name TEXT_recordDate TEXT

你要名本週戰績 您可以使用下面的代碼:

SELECT * FROM _testTbl 
WHERE _recordDate > datetime('now', 'start of day', 'weekday 6', '-7 day') 

注意,由星期六(星期日0,星期一1,...,星期六7)本星期開始 此T-SQL是指:

datetime是一個sqlite日期和時間函數。

  • 第一個參數給定時間:'now'表示當前時間。
  • 第二個參數需要時間來開始一天。
  • 第三個參數需要時間到下一個工作日號碼(在這種情況下,星期六)。
  • 第四個參數需要一週的開始時間