免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 12411 | 回复: 8
打印 上一主题 下一主题

请帮我写一个按日期查询oracle表字段的sql语句例子,谢谢! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-03-27 18:35 |只看该作者 |倒序浏览
desc tjbxx;
Name     Type          Nullable Default Comments
-------- ------------- -------- ------- --------
C_JSYBH  VARCHAR2(1                           
C_XM     VARCHAR2(20)                           
C_XB     VARCHAR2(4)                             
D_CSRQ   DATE                                    
C_GJ     VARCHAR2(10)  Y

我要查询出生日期是1980年3月1日的所有记录。我写的是

select * from tjbxx where D_CSRQ='2003-1-1'

ORA-01861: 文字与格式字符串不匹配

正确应该是怎样?谢谢!

另外,如何查看oracle当前的日期格式?如何修改?

论坛徽章:
0
2 [报告]
发表于 2003-03-27 19:20 |只看该作者

请帮我写一个按日期查询oracle表字段的sql语句例子,谢谢!

select * from tjbxx where D_CSRQ=to_date('2003-1-1', 'YYYY-MON-DD');
系统参数NLS_DATE_FORMAT

论坛徽章:
0
3 [报告]
发表于 2003-03-27 19:25 |只看该作者

请帮我写一个按日期查询oracle表字段的sql语句例子,谢谢!

select * from tjbxx where to_char(D_CSRQ , 'yyyy-mm-dd') ='2003-01-01';具体的转换格式我记不太清楚,你可以试一下
oracle 当前日前是SYSDATE

论坛徽章:
0
4 [报告]
发表于 2003-03-27 19:28 |只看该作者

请帮我写一个按日期查询oracle表字段的sql语句例子,谢谢!

分析上位所提供的语句
select * from tjbxx where D_CSRQ=to_date('2003-1-1', 'YYYY-MON-DD');
只能查出时间是零点零分的
有两种方法

1) select * from tjbxx where to_char(D_CSRQ,'YYYYMMDD')='20030301';

2)select * from tjbxx where D_CSRQ>;=to_date('20030301000000','yyyymmddhh24miss') and  D_CSRQ<=to_date
('20030301235959','yyyymmddhh24miss')

论坛徽章:
0
5 [报告]
发表于 2003-03-28 09:47 |只看该作者

请帮我写一个按日期查询oracle表字段的sql语句例子,谢谢!

我在sql plus中实验了一下:

select * from tjbxx where to_char(D_CSRQ,'YYYYMMDD')='20030101';

select * from tjbxx where D_CSRQ>;=to_date('20030301000000','yyyymmddhh24miss') and D_CSRQ<=to_date
('20030301235959','yyyymmddhh24miss');

select * from tjbxx where to_char(D_CSRQ , 'yyyy-mm-dd') ='2003-01-01';

都可以正确查询,再次谢谢!
只有采用日期格式查询是仍然出错:
select * from tjbxx where D_CSRQ=to_date('2003-1-1', 'YYYY-MON-DD')

ORA-01843: 无效的月份

论坛徽章:
0
6 [报告]
发表于 2003-03-28 10:58 |只看该作者

请帮我写一个按日期查询oracle表字段的sql语句例子,谢谢!

to_date('2003-1-1', 'YYYY-MM-DD')

论坛徽章:
0
7 [报告]
发表于 2003-03-28 11:37 |只看该作者

请帮我写一个按日期查询oracle表字段的sql语句例子,谢谢!

................

都是月亮惹的祸!·

每当俺听起这首歌,俺的心理就莫明的忧伤
每当俺看到那弯弯的月亮,双眼早已泪如雨下T_T



——————————————————————

此刻的俺,你看到了么

论坛徽章:
0
8 [报告]
发表于 2003-03-28 21:42 |只看该作者

请帮我写一个按日期查询oracle表字段的sql语句例子,谢谢!

系统默认的日期格式是DD-MON-YYYY,如'12-1月-2003',你前面的
-------select * from tjbxx where D_CSRQ=to_date('2003-1-1', 'YYYY-MON-DD')
应为-----select * from tjbxx where D_CSRQ=to_date('2003-1月-01', 'YYYY-MON-DD')
还有如果你表中的D_CSRQ是带上时间的话,如2003-2-2 12:20:11
则要查出某天生日的人,要
TO_CHAR(D_CSRQ,'DD-MON-YYYY')='01-1月-2003'
可通过更改NLS_DATE_FORMAT来修改日期格式

论坛徽章:
0
9 [报告]
发表于 2003-03-29 10:18 |只看该作者

请帮我写一个按日期查询oracle表字段的sql语句例子,谢谢!

谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP