提问人:James Wilson 提问时间:11/17/2023 最后编辑:Barbaros ÖzhanJames Wilson 更新时间:11/17/2023 访问量:47
使用period_name的日期范围
Date range using period_name
问:
我有一个表格,其中包含日期列,但采用字符串格式。gl_balances
period_name
mmm-yy
我需要从某个时间段之间提取数据,因此所有数据都在 和 之间。gl_balances
:period_name_from
:period_name_to
我正在努力弄清楚如何做到这一点。
有表,其中有,和(月号)可能也很有帮助gl_periods
period_name
period_year
period_num
我希望在两个周期之间显示表中的所有数据。gl_balances
period_name
我尝试了很多东西,但我认为我把它弄得一团糟!
答:
0赞
MT0
11/17/2023
#1
我有一个表格gl_balances其中包含日期列,但采用字符串格式。
period_name
mmm-yy
我需要从某个时间段之间提取数据,因此所有数据都在 和 之间。
gl_balances
:period_name_from
:period_name_to
假设您的绑定变量也是该格式的字符串,则将字符串转换为日期并使用:JAN-23
BETWEEN
SELECT *
FROM gl_balances
WHERE TO_DATE(period_name, 'MON-RR') BETWEEN TO_DATE(:period_name_from, 'MON-RR')
AND TO_DATE(:period_name_to, 'MON-RR');
如果绑定变量是日期,则:
SELECT *
FROM gl_balances
WHERE TO_DATE(period_name, 'MON-RR') BETWEEN :period_name_from
AND :period_name_to;
或者,如果您希望绑定变量部分重叠的整个月份(注意:结束月份永远不会重叠,因为该月第一天的午夜):period_name_from
TO_DATE(period_name, 'MON-RR')
SELECT *
FROM gl_balances
WHERE TO_DATE(period_name, 'MON-RR') BETWEEN TRUNC(:period_name_from, 'MM')
AND :period_name_to;
评论