我想使用两个变量,dateFrom 和 dateTo。它们所在的脚本将由作业调度程序自动运行。我希望自动更新这两个变量,以便它们可以传递给数据库查询,并且总是从前一天拉回数据。
因此,如果今天是 9 月 13 日,dateFrom 应该包含 9 月 11 日,dateTo 应该包含 9 月 12 日。
每次运行脚本时,变量都应该自动更新。日期格式应为 YYYYMMDD
有谁知道这是否可以在 Clojure 中完成?
非常感谢您的帮助
我想使用两个变量,dateFrom 和 dateTo。它们所在的脚本将由作业调度程序自动运行。我希望自动更新这两个变量,以便它们可以传递给数据库查询,并且总是从前一天拉回数据。
因此,如果今天是 9 月 13 日,dateFrom 应该包含 9 月 11 日,dateTo 应该包含 9 月 12 日。
每次运行脚本时,变量都应该自动更新。日期格式应为 YYYYMMDD
有谁知道这是否可以在 Clojure 中完成?
非常感谢您的帮助
您可以clj-time
为此使用:
(use '[clj-time.core :only [days minus today]]
'[clj-time.coerce :only [to-sql-date]])
(let [start (-> (today) (minus (days 2)) to-sql-date)
end (-> (today) (minus (days 1)) to-sql-date)]
[start end])
这是来自 Clojure REPL 的示例会话,其中包含所需的操作:
user=> (import java.util.Date)
java.util.Date
user=> (def now (Date.))
#'user/now
user=> (import java.util.Calendar)
java.util.Calendar
user=> (def cal (Calendar/getInstance))
#'user/cal
user=> (.setTime cal now)
nil
user=> (.add cal Calendar/DATE -2)
nil
user=> (def dateFrom (.getTime cal))
#'user/dateFrom
user=> (.setTime cal now)
nil
user=> (.add cal Calendar/DATE -1)
nil
user=> (def dateTo (.getTime cal))
#'user/dateTo
user=> (import java.text.SimpleDateFormat)
java.text.SimpleDateFormat
user=> (def sdf (SimpleDateFormat. "yyyyMMdd"))
#'user/sdf
user=> (.format sdf dateFrom)
"20130912"
user=> (.format sdf dateTo)
"20130913"