Sqlite

從記錄欄位計算日期

  • November 28, 2019

在 SQLite DB 中,我有一個包含station整數欄位和at日期欄位的表。

如何結合這兩個值在一個WHERE子句中獲得一個atstation月的日期?

即帶有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 不是四的倍數)時,也會出現類似的效果。

引用自:https://dba.stackexchange.com/questions/253817