Sqlite
從記錄欄位計算日期
在 SQLite DB 中,我有一個包含
station
整數欄位和at
日期欄位的表。如何結合這兩個值在一個
WHERE
子句中獲得一個at
加station
月的日期?即帶有
at = '2019-01-01'
and的記錄station = 3
,我的 WHERE 子句應該看起來像WHERE before <= '2019-04-01'
我在網上查看了幾個資源,包括https://www.sqlite.org/lang_datefunc.html但沒有人提到使用欄位值來計算日期。
您可以使用以下內容:
WHERE before <= date(at, (station || ' months') )
請注意,根據文件:
“±NNN 月”的工作原理是將原始日期渲染為 YYYY-MM-DD 格式,將 ±NNN 添加到 MM 月值,然後對結果進行正規化。因此,例如,由“+1 個月”修改的數據 2001-03-31 最初產生 2001-04-31,但 4 月只有 30 天,因此日期被標準化為 2001-05-01。當原始日期是閏年的 2 月 29 日並且修飾符是 ±N 年(其中 N 不是四的倍數)時,也會出現類似的效果。