oracle NVL 在日期和之间
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/19977770/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
NVL in BETWEEN date AND
提问by Przemek
Ok have a lot of records and mayebe one order number = 11233.
好的,有很多记录,可能只有一个订单号 = 11233。
part of code which is not correct
不正确的代码部分
AND a.C_DATE BETWEEN TO_DATE (
NVL ('&C_DATE_FROM', '1900-01-01'),
'yyyy-mm-dd')
AND TO_DATE (
NVL ('&C_DATE_TO', '2099-12-31'),
'yyyy-mm-dd')
My question How Can I write a condition if a.C_DATE is null ??? Now I dont have a record when a.C_DATe is null
我的问题如果 a.C_DATE 为空,我如何编写条件???现在当 a.C_DATe 为空时我没有记录
I wrote sth like this
我是这样写的
AND (a.C_DATE BETWEEN TO_DATE (
NVL ('&C_DATE_FROM', '1900-01-01'),
'yyyy-mm-dd')
AND TO_DATE (
NVL ('&C_DATE_TO', '2099-12-31'),
'yyyy-mm-dd') OR a.C_DATE IS NULL)
but I'm waiting for a long time....
但是我等了很久......
采纳答案by Mt. Schneiders
Give this a try:
试试这个:
AND (NVL(a.C_DATE, TO_DATE('1900-01-01','yyyy-mm-dd'))
BETWEEN TO_DATE (NVL('&C_DATE_FROM', '1900-01-01'), 'yyyy-mm-dd')
AND TO_DATE (NVL('&C_DATE_TO', '2099-12-31'), 'yyyy-mm-dd'))
回答by nabuchodonossor
maybe this way?
也许这样?
AND (
a.C_DATE BETWEEN
TO_DATE('1900-01-01', 'yyyy-mm-dd') AND TO_DATE ('2099-12-31', 'yyyy-mm-dd')
OR a.C_DATE IS NULL
)
why this larage date range?
为什么这个大日期范围?