-1
日期计算不是我的强项,我需要一点帮助。 我试图检查从选定字段的日期(这是一个时间戳)是在当天下午12点之前。提前致谢。情景:如果订单在当天的下午12点之前发出,它将有资格获得x,否则获得y。所以我的创建日期(包括时间)是我在select语句中得到的。火鸟检查日期是否在当天的下午12点前
日期计算不是我的强项,我需要一点帮助。 我试图检查从选定字段的日期(这是一个时间戳)是在当天下午12点之前。提前致谢。情景:如果订单在当天的下午12点之前发出,它将有资格获得x,否则获得y。所以我的创建日期(包括时间)是我在select语句中得到的。火鸟检查日期是否在当天的下午12点前
DATE
类型不包含时间信息,因此您需要定义日期在什么时间点。如果时间信息也很重要,则应使用TIMESTAMP
类型。 总之,可以说,该字段存储在中午12点时的日期,然后你用
WHERE date_field <= CURRENT_DATE;
CURRENT_DATE
就是所谓的上下文变量返回,显然,当前的日期。 CURRENT_TIMESTAMP
和CURRENT_TIME
也可用。您可以使用DATEADD和DATEDIFF内置函数来进行一些日期计算。
因此,如果字段实际上是时间戳,你可以做这样
WHERE date_field < DateAdd(12 HOUR to cast(CURRENT_DATE as timestamp));
AlN,感谢您的答复。我了解您对时间戳的建议,但是如果在CURRENT_DATE/NOW的下午12点之前,必须检查选择中的我的日期字段。我将编辑我的问题以解释场景...... – ceebreenk 2013-02-19 11:07:17
@ user2086463由于Firebird中的DATE没有时间部分,因此无法检查它是在'12pm'之前还是之后,您需要使用'TIMESTAMP'。 – 2013-02-19 11:50:03
正如马克已经写道,只有'DATE'字段是不可能的,除非您有时间将订单存储到其他字段中。顺便说一句,使用'am/pm'是令人困惑的(至少对我来说),我建议使用24小时制来清晰地表达你的问题。我认为你需要在当天中午之前下单吗? – ain 2013-02-19 12:34:58