私は列を持つレコードを含むテーブルが日付を示しています。レコードがあれば、レコードと同じ週にあるすべてのレコードを選択したいと思います。 SQLはどのようにそれを行うことができますか?SQLは同じ週にレコードを取得します
私はSQLiteを使用していると言えます。
datediff(ww,start_date,end_date) < 1
私は列を持つレコードを含むテーブルが日付を示しています。レコードがあれば、レコードと同じ週にあるすべてのレコードを選択したいと思います。 SQLはどのようにそれを行うことができますか?SQLは同じ週にレコードを取得します
私はSQLiteを使用していると言えます。
datediff(ww,start_date,end_date) < 1
あなたは現在の週を取得するためにwk
でDATEPART
を使用することができます。次に、平等をチェックしてください。 この場合、yy
もチェックして、前週の年をチェックしないようにしています。
SELECT *
FROM TABLE
WHERE DATEPART(wk, TABLE.DATECOLUMN)
= DATEPART(wk, (SELECT DATECOLUMN FROM TABLE WHERE ID = GivenID))
AND DATEPART(yy, TABLE.DATECOLUMN) = DATEPART(yy, (SELECT DATECOLUMN FROM TABLE WHERE ID = GivenID))
SQLLite、Refer to this SO question、その後this article that states %W is what you use to get week and %Y for yearでこれを行うにはSQLiteの FOR UPDATE
。あなたを与える:
SELECT *
FROM TABLE
WHERE STRFTIME('%W', TABLE.DATECOLUMN)
= STRFTIME('%W', (SELECT DATECOLUMN FROM TABLE WHERE ID = GivenID))
AND STRFTIME('%Y', TABLE.DATECOLUMN)
= STRFTIME('%Y', (SELECT DATECOLUMN FROM TABLE WHERE ID = GivenID))
はdatediff()
機能を使用してください。
SELECT * FROM records WHERE datecolumn between 'YYYY/MM/DD' AND 'YYYY/MM/DD'
SQLiteでは動作しないようです。 :( – Yang
あなたがするレコードを指定するためにBETWEENを使用することができます。
あなたはこれまで何を得ていますか? –
http://www.objectreference.net/post/SQL-Find-last-week-date-range.aspxのようなものを使う必要があるようですが、開始日が選択したレコード –