SQLite:如何从整数年和月组件创建日期?

Ian*_*non 2 sqlite casting date

我有一个包含整数yearmonth列的 SQLite 表。我希望能够将它们“转换”为某些查询的日期类型,但我发现的最简单的方法很长且不直观:

...
date(
    cast(year as text) || "-" ||
    substr('0' || cast(month as text), -2, 2) ||
    "-01" -- day of the month is irrelevant
    )
...
Run Code Online (Sandbox Code Playgroud)

有没有更清晰、更简洁、可重用的方法来做到这一点?

ray*_*nnz 5

在这种情况下,我个人更喜欢使用 date() 函数,而不是 substr() 。

要获取带有年份和月份整数的日期:

select date(year ||'-01-01','+'||(month-1)||' month');
Run Code Online (Sandbox Code Playgroud)

要获取年、月、日整数的日期:

select date(year ||'-01-01','+'||(month-1)||' month','+'||(day-1)||' day');
Run Code Online (Sandbox Code Playgroud)