在我的选择中我正在使用此
(TRUNC(TO_DATE(TIMESTAMP, 'dd.mm.yyyyHH24:mi'))) TIMESTAMP,
以日期格式获取以下输出:例如22/04/2016
现在我想在我的WHERE子句中添加一个语句,只显示特殊月份的日期,例如只有MARCH和APRIL的日期
我试过用这个:
WHERE (TRUNC(TO_DATE(TIMESTAMP, 'mm'))) in (3,4)
这给了我一个错误。
感谢您的帮助。
答案 0 :(得分:4)
只需在时间戳上使用WHERE EXTRACT(MONTH FROM timestamp) IN (3, 4)
:
line1
line2
line3
这将匹配3月和4月的记录。
答案 1 :(得分:2)
在我的选择中我正在使用此
(TRUNC(TO_DATE(TIMESTAMP, 'dd.mm.yyyyHH24:mi'))) TIMESTAMP,
以日期格式获取以下输出:例如
22/04/2016
TO_DATE
接受一个字符串值,这样您的"TIMESTAMP"
列将被隐式转换为字符串,然后返回日期......这是不必要的(并且依赖于{{1}的值session参数用于格式化隐式转换 - 如果更改,将破坏查询);你可以这样做:
NLS_TIMESTAMP_FORMAT
如果你想在不同月份过滤,那么你可以做(按照Tim Biegeleisen的建议):
TRUNC( "TIMESTAMP" ) AS "TIMESTAMP"
或者如果你想要特定年份那么
WHERE EXTRACT( MONTH FROM "TIMESTAMP" ) IN ( 3, 4 )
或者,您可以在列上使用索引:
WHERE TRUNC( "TIMESTAMP", 'MM' ) IN ( DATE '2016-03-01', DATE '2016-04-01' )