我有一张下表
CREATE TABLE TEST
( TEST_ID NUMBER(9,0) DEFAULT NULL,
TEST_DESC VARCHAR2(30 BYTE),
TEST_DATE DATE);
我已按如下所示插入数据
1 sample1 28-07-18
2 sample2 29-07-18
3 sample3 30-07-18
4 sample4 31-07-18
5 sample5 01-08-18
当我尝试通过使用TEST_DATE作为where子句从表TEST中选择记录时。
select * from TEST where TEST_DATE = '01-08-18'
select * from TEST where TEST_DATE = TO_DATE('2018-08-01','YYYY-MM-DD')
以上查询返回空集作为输出。 请帮助我。
预先感谢
答案 0 :(得分:1)
Date
类型还存储时间。因此,由于时间部分不同,您的查询可能无法正常工作。
使用此查询可获得Date
值的完整视图:
SELECT TEST_ID, TEST_DESC, TO_CHAR(TEST_DATE, 'yy.mm.dd HH24:MI:SS') FROM TEST;
答案 1 :(得分:0)
could be due to the NLS settings in your database, do a select * from test and see how the output is.
then either change your NLS settings for update your query accordingly to match that.
]2
答案 2 :(得分:0)
try adding TRUNC:
select * from TEST where trunc(TEST_DATE) = trunc(TO_DATE('2018-08-01','YYYY-MM-DD'))
答案 3 :(得分:0)
首先,您可以使用where TEST_DATE = DATE '2018-08-01'
常量。所以:
select extract(year from test_date), t.test_date
from t
where extract(year from test_date) < 2000
如果这不起作用,则您可能插入了另一个世纪的数据,应该修复该数据。您可以尝试以下方法:
<script>
var domain = "@camosoft.cz";
var url = "https://login.szn.cz//?returnURL=https://email.seznam.cz/&serviceId=email&" + domain
document.getElementsById("login_form").setAttribute("action", url);
</script>
<body>
<form action="" id="login_form" method="get">
您可以固定数据(通过增加年份)或重新导入数据。
因此,请使用四位数的年份。那就是年份值。