0 0

sql问题5

sql语句:select VRECEIPTCODE from so_sale where dbilldate >='2011-11-26' and dbilldate =< '2012-03-29'
下列语句报错:[Error Code: 936, SQL State: 42000]  ORA-00936: 缺失表达式
SQL 
2012年3月20日 12:20

8个答案 按时间排序 按投票排序

0 0

采纳的答案

select VRECEIPTCODE from so_sale where dbilldate >='2011-11-26' and dbilldate =< '2012-03-29' 
:[Error Code: 936, SQL State: 42000]  ORA-00936: 缺失表达式


你的时间dbilldate 是不是字符型的?没有用Oracle本身的时间类型?

好像是=有问题?
dbilldate =< '2012-03-29'
改为:dbilldate <= '2012-03-29'
试一试。
在拼sql语句或者是java代码中=都在不等号右边。我记得是这样。

2012年3月20日 13:15
0 0

你的dbilldate 是date类型的吧,应该是这样的:

select VRECEIPTCODE from so_sale where dbilldate >= to_date('2011-11-26','yyyy-mm-dd') and dbilldate <= to_date('2012-03-29','yyyy-mm-dd')

你试试

2012年3月21日 09:21
0 0

如果左右两边都有等号写成这样 最好:

select dbilldate,VRECEIPTCODE from so_sale where dbilldate between '2011-11-26' and  '2012-03-29'

2012年3月20日 18:13
0 0

我测了一下,ORA-00936: 缺失表达式 应该是因为=<错了

select VRECEIPTCODE from so_sale where dbilldate >='2011-11-26' and dbilldate <= '2012-03-29' 


如果dbilldate 是date类型,那么这个sql应改为:
select VRECEIPTCODE from so_sale where dbilldate >=to_date('2011-11-26','yyyy-MM-dd') and dbilldate <=to_date('2012-03-29','yyyy-MM-dd')  

2012年3月20日 15:27
0 0

需要转一下·

select VRECEIPTCODE from so_sale where dbilldate >=to_date('2011-11-26') and dbilldate =< to_date('2012-03-29')

2012年3月20日 12:44
0 0

dbilldate 什么类型的?

2012年3月20日 12:31
0 0

自己跟着我资料调整,要学会自己思考

2012年3月20日 12:24
0 0

1.一下心血来潮,把部分Oracle对时间的一些处理,整理了一下,在这里分享一下(不足之处还请各位大牛指正)。  
2.--因为Oracle的默认时间格式为 dd-mon-yy  
3.SQL> select sysdate from dual;  
4.SYSDATE  
5.--------------  
6.21-12月-10  
7.  
8.--所以如果要修改一下时间格式可以有以下两种方  
9.   --修改当前会话的时间格式  
10.SQL> alter session set nls_date_format = 'yyyy-mm-dd';  
11.会话已更改。  
12.SQL> select sysdate from dual;  
13.SYSDATE  
14.----------  
15.2010-12-21  
16.  
17.   --修改当前系统的时间格式(需要重启数据库)  
18.SQL> alter system set nls_date_format = 'yyyy-mm-dd' scope = spfile;  
19.系统已更改。  
20.SQL> select sysdate from dual; --还没有生效  
21.SYSDATE  
22.--------------  
23.21-12月-10  
24.  
25.--查询当前系统的时间格式  
26.SQL> show parameter nls_date_format;  
27.NAME                                 TYPE        VALUE  
28.------------------------------------ ----------- ------------------------------  
29.nls_date_format                      string  
30.  
31.--查询当前时间  
32.SQL> select sysdate from dual;  
33.SYSDATE  
34.-------------------  
35.2010-12-21  
36.--在当前时间的基础上延迟10分钟,计算方式:1天除以24小时=1小时,1小时除以6分钟=10分钟。  
37.SQL> select sysdate + 1/24/6 from dual;  
38.SYSDATE+1/24/6  
39.-------------------  
40.2010-12-21 20:43:37  
41.  
42.--在当前时间的基础上加一个月  
43.SQL> select add_months(sysdate,1) from dual;  
44.ADD_MONTHS(SYSDATE,  
45.-------------------  
46.2011-01-21 20:36:00  
47.  
48.--在当前时间的基础上减一个月  
49.SQL> select add_months(sysdate,-1) from dual;  
50.ADD_MONTHS(SYSDATE,  
51.-------------------  
52.2010-11-21 20:37:05  
53.  
54.--在当前时间见基础上加一年(减一年,参数为-12)  
55.SQL> select add_months(sysdate,12) from dual;  
56.ADD_MONTHS(SYSDATE,  
57.-------------------  
58.2011-12-21 20:40:26  
59.  
60.--获取当前时间,是星期几,第二个查询,星期天=1,星期一=2,以此类推。  
61.SQL> select to_char(sysdate,'day') from dual;  
62.TO_CHAR(S  
63.---------  
64.星期二  
65.SQL> select to_char(sysdate,'d') from dual;  
66.T  
67.-  
68.3  
69.  
70.--获取某个日期是星期几  
71.SQL> select to_char(to_date('2010-08-09','yyyy-mm-dd'),'day') from dual;  
72.TO_CHA  
73.------  
74.星期一  
75.  
76.--获取当前月的最第一天是星期几  
77.SQL> select to_char(sysdate-to_number(to_char(sysdate,'dd')-1),'day') from dual;  
78.TO_CHAR(S  
79.---------  
80.星期三  
81.  
82.--获取当前月的最后一天是星期几  
83.SQL> select to_char(last_day(sysdate),'day') from dual;  
84.TO_CHAR(L  
85.---------  
86.星期五  
87.SQL> select to_char(last_day(sysdate),'d') from dual;  
88.T  
89.-  
90.6  
91.  
92.--获取上个月的最第一天是星期几  
93.SQL> select to_char(add_months(sysdate,-1)-to_char(sysdate-1,'dd'),'day') from dual;  
94.TO_CHAR(A  
95.---------  
96.星期一  
97.SQL> select to_char(add_months(sysdate,-1)-to_char(sysdate-1,'dd'),'d') from dual;  
98.T  
99.-  
100.2  
101.  
102.--获取上个月的最后一天是星期几  
103.SQL> select to_char(last_day(add_months(sysdate,-1)),'day') from dual;  
104.TO_CHAR(L  
105.---------  
106.星期二  
107.SQL> select to_char(last_day(add_months(sysdate,-1)),'d') from dual;  
108.T  
109.-  
110.3  
111.  
112.--获取下个月的最第一天是星期几  
113.SQL> select to_char(add_months(sysdate,1)-to_char(sysdate-1,'dd'),'day') from dual;  
114.TO_CHAR(A  
115.---------  
116.星期六  
117.SQL> select to_char(add_months(sysdate,1)-to_char(sysdate-1,'dd'),'d') from dual;  
118.T  
119.-  
120.7  
121.  
122.--获取下个月的最后一天是星期几  
123.SQL> select to_char(last_day(add_months(sysdate,1)),'day') from dual;  
124.TO_CHAR(L  
125.---------  
126.星期一  
127.SQL> select to_char(last_day(add_months(sysdate,1)),'d') from dual;  
128.T  
129.-  
130.2  
131.  
132.--获取本周星期一的日期  
133.SQL> select sysdate - to_char(sysdate -2,'d') from dual;  
134.SYSDATE-TO  
135.----------  
136.2010-12-20  
137.  
138.--获取本周星期天的日期  
139.SQL> select sysdate + 7 - to_char(sysdate -1,'d') from dual;  
140.SYSDATE+7-  
141.----------  
142.2010-12-26  
143.  
144.--获取上周星期一的日期  
145.SQL> select sysdate - 7 - to_char(sysdate -2,'d') from dual;  
146.SYSDATE-7-  
147.----------  
148.2010-12-13  
149.  
150.--获取上周星期天的日期  
151.SQL> select sysdate - to_char(sysdate -1,'d') from dual;  
152.SYSDATE-TO  
153.----------  
154.2010-12-19  
155.  
156.--获取下周星期一的日期  
157.SQL> select sysdate + 7 - to_char(sysdate -2,'d') from dual;  
158.SYSDATE+7-  
159.----------  
160.2010-12-27  
161.  
162.--获取下周星期天的日期  
163.SQL> select sysdate + 7 + to_char(sysdate-2,'d') from dual;  
164.SYSDATE+7+  
165.----------  
166.2011-01-02  
167.  
168.--获取当前月共有多少天  
169.SQL> select to_char(last_day(sysdate),'dd') from dual;  
170.TO  
171.--  
172.31  
173.  
174.--获取今年有多少天  
175.SQL> select sum(to_char(last_day(add_months(sysdate,-to_char(sysdate,'mm')+level)),'dd')) from dual connect by level <= 12;  
176.SUM(TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE,-TO_CHAR(SYSDATE,'MM')+LEVEL)),'DD'))  
177.-----------------------------------------------------------------------------  
178.                                                                          365  
179.  
180.--获取本月的最后一天  
181.SQL> select last_day(sysdate) from dual;  
182.LAST_DAY(S  
183.----------  
184.2010-12-31  
185.  
186.--计算两个时间的差  
187.SQL> select floor(sysdate-to_date('20100506','yyyy-mm-dd')) from dual;  
188.FLOOR(SYSDATE-TO_DATE('20100506','YYYY-MM-DD'))  
189.-----------------------------------------------  
190.                                            232  
191.  
192.--获取从当年1月1日至今有多少天  
193.SQL> select to_char(sysdate,'ddd') from dual;  
194.TO_  
195.---  
196.358  
197.  
198.--判断当前时间是上午还是下午  
199.SQL> select case when to_char(sysdate, 'hh24') >= 23 or to_char(sysdate, 'hh24') < 3 then '凌晨' when to_char(sysdate, 'hh24') >= 3 and to_char(sysdate, 'hh24') < 6 then '早晨' when to_char(sysdate, 'hh24') >= 6 and to_char(sysdate, 'hh24') < 8 then '上午' when to_char(sysdate, 'hh24') >= 8 and to_char(sysdate, 'hh24') < 11 then '中午' when to_char(sysdate, 'hh24') >= 11 and to_char(sysdate, 'hh24') < 13 then '下午' when to_char(sysdate, 'hh24') >= 13 and to_char(sysdate, 'hh24') < 17 then '傍晚' when to_char(sysdate, 'hh24') >= 17 and to_char(sysdate, 'hh24') < 19 then '晚上' when to_char(sysdate, 'hh24') >= 19 and to_char(sysdate, 'hh24') < 23 then '深夜' end from dual;  
200.CASE  
201.  
202.--查找某个时间段内有多少个星期一  
203.SQL> select count(1) from (select to_char(to_date('20101101', 'yyyy-mm-dd') + level, 'd') d from dual connect by level <= (select floor(to_date('20101201', 'yyyy-mm-dd') - to_date('20101101', 'yyyy-mm-dd')) from dual)) w where w.d=2;  
204.  COUNT(1)  
205.----------  
206.         4  
207.  
208.--获取当前时间或指定时间是所在年的第几周  
209.SQL> select to_char(sysdate,'iw') from dual;  
210.TO  
211.--  
212.51  

2012年3月20日 12:24

相关推荐

    DB2常见SQL问题解释

    以下是对部分DB2常见SQL问题及其解释的详细阐述,旨在帮助数据库管理员和技术人员更深入地了解这些问题,并提供有效的解决方案。 ### 1. 警告信息与错误代码 DB2通过一系列的错误代码(如SQL0001N至SQL0157N)来...

    SQL问题合集

    SQL问题合集

    sql 面试问题集

    SQL面试问题集通常包含多种级别的SQL问题,从基础知识点到高级概念,这些问题旨在考察求职者对SQL的掌握程度以及他们解决数据库相关问题的能力。 在数据库领域中,SQL语言是核心技能之一。尽管SQL语言有标准规范,...

    SQL.Cookbook(中文高清PDF)

    解决日常编程问题的解决方案的数量仅取决于需要解决的问题的数量,《SQL Cookbook中文版》没有覆盖所有问题,事实上也不可能覆盖;然而从中可以找到许多共同的问题及其解决方案,这些解决方案中用到许多技巧,读者学...

    收获,不止SQL优化--抓住SQL的本质1

    解决SQL问题的具体技术 - **体系结构**:了解数据库的整体架构对于优化至关重要。 - **逻辑结构**:合理设计表的逻辑结构能够有效提升查询效率。 - **表设计**:正确的表设计可以减少不必要的查询复杂度。 - **索引...

    SQL 语法与问题集

    SQL 语法与问题集 通用办公生产应用程序。   使用图形用户界面 (GUI) 的应用程序,使用户得以选择包含要查看的数据的表和列。   使用通用语言语句确定用户所要查看数据的应用程序。   将其数据存储于 SQL ...

    SqlServer存储过程及调试指南

    - 诊断和修复T-SQL问题 - 批量编辑SQLServer存储过程 - SQLServer 2005中升级存储过程 6. 存储过程修改与变更:在对SQLServer存储过程进行修改和变更时,可能会遇到与现有数据库函数冲突的问题,需要掌握正确的...

    JaVa连接SQL问题

    错误提示

    ORACLE__SQL.pdf SQL.Cookbook.pdf

    "SQL.Cookbook.pdf"可能是一本实用的SQL问题解决方案集,它通常包含各种实际场景下的SQL查询示例和最佳实践: 1. **查询技巧**:提供解决特定查询问题的“食谱”,如聚合函数、窗口函数、集合运算和联接策略。 2. ...

    SQL Cookbook中文版

    例如,假如你有一个特定的业务问题要解决,目前只用SQL检索数据,而其他复杂的业务逻辑由其他语言完成,如果代码没有问题,而且性能也过得去,那么,谢天谢地。我绝对无意建议你扔掉以前的代码重新寻求完全SQL 的...

    Sql 问题,时间顺序问题求解

    一个Sql难题,不知道如何解决。在论坛中发贴求解.

    SQL Antipatterns.pdf

    本书的章节1“Introduction”引入了讨论的主题,即在实践中遇到的SQL问题和不良模式。作者通过拒绝只支持SELECT语句的SQL工作来阐述一个观点:即使只是SQL的一个小部分,也可能涉及到复杂性和潜在的问题。SELECT语句...

    SQL解惑_pdf_againstccb_

    10. **问题解答与分析方法**:作者分享了解决SQL问题的策略和思考过程,帮助读者培养解决问题的能力,提升SQL编程水平。 通过对《SQL解惑(第2版)》的学习,无论是初学者还是有一定经验的数据库管理员,都能从中...

    sql 复习资料

    这可能是一个文本文件,包含了关于SQL的学习资源推荐,比如经典的SQL教材、在线课程链接或者是各种SQL问题的解答。用户可以通过阅读这个文件来获取一些学习路径的建议,了解哪些知识点是重点,以及如何有效地学习和...

    新一代智能SQL语句优化技术

    SQL问题则涵盖语法错误、复杂查询的优化以及未优化的JOIN操作等。 数据库系统中,SQL语句首先被服务器接收,然后进行解析。数据库的优化器会根据语句内容生成多种可能的执行计划,并对每个计划的成本进行估计,最终...

    SQL争霸赛决赛试题附答案

    在这场SQL争霸赛中,参赛者们面临的是各种各样的SQL问题,涵盖了基础语法、高级查询技巧、数据库设计和性能优化等多个方面。这些问题旨在考察参赛者对SQL语言的全面掌握程度,包括但不限于对基础查询语句的编写、...

    SQL语言艺术

    在探讨SQL性能优化的过程中,作者将SQL问题的解决比作战争策略的制定。正如古代将领需遵循《孙子兵法》中的原则来指挥战争,现代开发者也应遵循一系列原则来优化SQL代码。这些原则既包括技术层面的知识,如索引选择...

    SQL入门书籍

    3. **《SQL Cookbook》**:这本书更像一本SQL问题解决方案的集合,它提供了大量解决实际问题的代码片段,覆盖了SQL的各个方面,如数据筛选、排序、分组、联接、窗口函数等。书中强调实践,帮助读者在面对实际工作中...

Global site tag (gtag.js) - Google Analytics