努力产生查询

时间:2018-12-07 19:37:01

标签: sql database oracle

git log --pretty=fuller --author='that-user' -5

您好尝试以此生成以下SQL查询:

  

选择*       从电影       DATE_OF_RELEASE <'2016-08-01';

但是我似乎无法弄清楚为什么我会出错?


也尝试回答这个问题:编写一条SQL语句以计算2016年8月之前发布的数据库中的电影数量。

  

SELECT COUNT(*)AS“ 2016年8月之前发行的电影数量”   来自电影;   在哪里date_of_release <日期'2016-08-01';

但是出现此错误:

从第18行开始的错误- 在哪里date_of_release <日期'2016-08-01' 错误报告 - 未知命令

2 个答案:

答案 0 :(得分:3)

不要以错误的方式进行操作-以正确的方法进行操作。

如果DATE_OF_RELEASE列的数据类型为DATE(应该是),则将其与DATE而不是字符串进行比较。 '01-aug-16''2016-08-01'字符串,不是日期。不要依赖Oracle及其功能将其隐式转换为日期,因为一旦NLS设置更改,它迟早会失败。

所以,使用

where date_of_release < date '2016-08-01'   -- date literal

where date_of_release < to_date('01.08.2016', 'dd.mm.yyyy') -- TO_DATE function

不留任何字符串。

答案 1 :(得分:0)

尝试一下

SELECT * FROM FILM WHERE DATE_OF_RELEASE < '01-AUG-16';