Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date Clojure要传递到数据库查询的日期变量_Date_Clojure_Automation_Date Format - Fatal编程技术网

Date Clojure要传递到数据库查询的日期变量

Date Clojure要传递到数据库查询的日期变量,date,clojure,automation,date-format,Date,Clojure,Automation,Date Format,我想使用两个变量,dateFrom和dateTo。作业调度器将自动运行它们所在的脚本。我希望这两个变量能够自动更新,这样就可以将它们传递给DB查询,并且总是从前一天提取数据 因此,如果今天是9月13日,dateFrom应该包含9月11日,dateTo应该包含9月12日 每次运行脚本时,应自动更新变量。 日期的格式应为YYYYMMDD 有人知道这是否可以在Clojure中实现吗 非常感谢您的帮助以下是Clojure REPL的示例会话,其中包含所需的操作: user=> (import ja

我想使用两个变量,dateFrom和dateTo。作业调度器将自动运行它们所在的脚本。我希望这两个变量能够自动更新,这样就可以将它们传递给DB查询,并且总是从前一天提取数据

因此,如果今天是9月13日,dateFrom应该包含9月11日,dateTo应该包含9月12日

每次运行脚本时,应自动更新变量。 日期的格式应为YYYYMMDD

有人知道这是否可以在Clojure中实现吗


非常感谢您的帮助

以下是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"

下面是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"
您可以为此使用:

(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])
您可以为此使用:

(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])

你知道用Java怎么做吗?我不能说我知道。。。我猜你会说在clojure中使用java库来实现这一点?@Chiron抱歉,我知道如何在java中实现这一点。Date Date=新日期,使用简单日期格式获取所需格式并将其存储为变量。将前一天的日期字符串解析为int和-1,给出dateFrom和dateTo。现在,对于clojure变体…@Blue42:如果您使用Calendar.add方法,则不需要在不同的日期格式之间进行转换。我要说的是,您知道如何在Java中进行转换吗?我不能说我知道。。。我猜你会说在clojure中使用java库来实现这一点?@Chiron抱歉,我知道如何在java中实现这一点。Date Date=新日期,使用简单日期格式获取所需格式并将其存储为变量。将前一天的日期字符串解析为int和-1,给出dateFrom和dateTo。现在,对于clojure变体…@Blue42:如果您使用Calendar.add方法,则不需要在不同的日期格式之间进行转换。我要说的是谢谢@Rord。我要试试这个!谢谢你@Rord。我要试试这个!