Sql 计算从第1天到昨天的当月天数
我正在尝试计算当前月份从第1天到昨天的天数,而无需手动更改计数。原始SQL语句如下所示:Sql 计算从第1天到昨天的当月天数,sql,date,datetime,select,firebird,Sql,Date,Datetime,Select,Firebird,我正在尝试计算当前月份从第1天到昨天的天数,而无需手动更改计数。原始SQL语句如下所示: select order_id from orders where date > dateadd(-23 to current_date) and date < 'today' 选择订单\u id 从命令 其中日期>日期添加(-23到当前日期)和日期日期添加(datediff(day,每月第一天,当前日期)到当前日期)和日期=日期添加(1-提取(从当前日期开始的日期)到当前日期的日期) 和
select order_id
from orders
where date > dateadd(-23 to current_date) and date < 'today'
选择订单\u id
从命令
其中日期>日期添加(-23到当前日期)和日期<'today'
所需的代码类似于
select order_id
from orders
where date > dateadd(datediff(day,firstdayofthemonth,current_date) to current_date) and date < 'today'
选择订单\u id
从命令
其中日期>日期添加(datediff(day,每月第一天,当前日期)到当前日期)和日期<'today'
感谢您对firebird的帮助,您可以:
WHERE
date >= DATEADD(1 - EXTRACT(DAY FROM CURRENT_DATE) DAY TO CURRENT_DATE)
AND date < CURRENT_DATE
在哪里
日期>=日期添加(1-提取(从当前日期开始的日期)到当前日期的日期)
和日期<当前日期
在firebird中,您可以执行以下操作:
WHERE
date >= DATEADD(1 - EXTRACT(DAY FROM CURRENT_DATE) DAY TO CURRENT_DATE)
AND date < CURRENT_DATE
在哪里
日期>=日期添加(1-提取(从当前日期开始的日期)到当前日期的日期)
和日期<当前日期
除了GMB提供的答案外,您还可以使用Firebird允许在日期上添加天数这一事实,而无需使用dateadd
:
date > current_date - extract(day from current_date)
and date < current_date
date>current_date-提取(从当前_日期算起的日期)
和日期<当前日期
除了GMB提供的答案外,您还可以使用Firebird允许在日期上添加天数这一事实,而无需使用dateadd
:
date > current_date - extract(day from current_date)
and date < current_date
date>current_date-提取(从当前_日期算起的日期)
和日期<当前日期
除了Mark提供的答案外,您还可以在之间使用(从Firebird 2.0.4开始)
另外,所有这些答案都依赖于没有时间部分的日期
数据类型(因此,日期
列和当前日期
变量)。这是为现代SQL方言3提供的。但如果方言1会被使用,则不会给出
除了Mark提供的答案外,您还可以在
之间使用(从Firebird 2.0.4开始)
另外,所有这些答案都依赖于没有时间部分的日期
数据类型(因此,日期
列和当前日期
变量)。这是为现代SQL方言3提供的。但如果方言1会被使用,则不会给出
我注意到这与您前面的问题非常相似:您询问的是“从第一天到昨天的当月天数”。只是想澄清一下,当查询在一个月的第一天运行时,您希望发生什么?那么“昨天”将不再是“当前月份”。你想要零结果吗?你想要完整的上个月吗?我注意到这与你之前的问题很相似:你问的是“本月的第1天到昨天”。只是想澄清一下,当查询在一个月的第一天运行时,您希望发生什么?那么“昨天”将不再是“当前月份”。你想要零结果吗?你想要完整的上个月吗?