SQLite:获取当前周

时间:2011-11-11 10:37:58

标签: sqlite date

我正在尝试获取当前的SQLite日期比较周。 我上个月,去年,今天,昨天没有问题...但是找不到当前一周的解决方案。

我尝试过很多东西:

SELECT tastings.* FROM tastings   
WHERE (DATE(tastings.date) > DATE('now','weekday 1','+ 7 days'))
你能帮帮我吗?感谢。

4 个答案:

答案 0 :(得分:3)

此代码为您提供星期一是星期一的星期编号。它也适用于今年的最后一周和第一周。

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

答案 1 :(得分:1)

我想你想比较2日期,假设你有一个名为_testTbl的表,有3列_id INTEGER_name TEXT_recordDate TEXT

你想要本周记录的名字 你可以使用下面的代码:

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

请注意,本周从星期六开始(星期日0,星期一,...,星期六7) 这个t-sql意味着:

datetime是一个sqlite日期和时间函数。

  • 第一个参数是给定时间:'now'表示当前时间。
  • 第二个参数花时间开始一天。
  • 第三个参数花费时间到下一个工作日编号(在本例中为星期六)。
  • 第四个参数需要一些时间来开始一周

答案 2 :(得分:0)

这有助于我使用一年中的一周比较两个日期。

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

谢谢你。

答案 3 :(得分:0)

tastings.date列中存储的内容是什么?请注意,SQLite没有“timestamp”类型亲缘关系,因此可能存储Text(某些日期表示)或整数(julian day,epoch ...)

所有时间和日期函数都需要有效的time string,并将该时间字符串转换为另一种字符串格式。如果tastings.date包含周数,请使用:

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