【问题标题】:SQLite: Get week number from date [duplicate]SQLite:从日期获取周数[重复]
【发布时间】:2018-12-16 00:20:09
【问题描述】:

如何从日期中获取周数,在 SQL 中有一个函数:Datepart(GetDate()),它返回周数。我怎样才能在 SQLite 中得到这个?

【问题讨论】:

  • 这个问题与java和android有什么关系?
  • 范围很广。你的搜索带来了什么?在哪些方面是不足或失败的?
  • SQL As Understood By SQLite 提到一年中的一周。看看能不能用。当然,也有可能用 Java 获取周数。
  • 你想用java获取像这个日期属于一年中第15周的周数吗?你能澄清你的问题吗?
  • 定义“周数”。第 1 周包含 1 月 1 日?包含特定星期几的第一次出现?第一个完整的一周,只有从新年开始的几天?标准ISO 8601 week?并在发布前搜索 Stack Overflow。这个问题已经被问过很多次了。

标签: java android sqlite date


【解决方案1】:

您可以在strftime() 中使用适当的格式说明符。

详情请见SQLite Date And Time Functions

【讨论】:

    【解决方案2】:

    您可以将 strftime 函数与格式字符串(第一个参数)一起使用为 %W

    根据SQL As Understood By SQLite - Date And Time Functions

    示例

    DROP TABLE IF EXISTS getweek;
    CREATE TABLE IF NOT EXISTS getweek (mydate TEXT);
    INSERT INTO getweek VALUES ('2018-01-01'),('2018-02-01'),('2018-03-01');
    SELECT *, strftime('%W',mydate) AS weekofyear FROM getweek;
    

    这会导致:-

    注意日期必须采用可识别的日期/时间格式之一(例如 2018/03/01 将导致 null,因为日期不是可识别的格式)。请参阅上面链接中的时间字符串部分了解可识别的格式。

    【讨论】:

    • 不幸的是,文档没有解释该函数使用的星期定义。可能是standard ISO 8601 week。您可以在答案中链接/引用任何明确的文档吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    相关资源
    最近更新 更多