日期(DATE)字面量可以通过字符串指定,或者可以使用 TO_DATE
函数将字符或数字值转换为日期值。日期字面量是唯一接受用 TO_DATE
表达式代替字符串指定值的:
创新互联长期为近1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为铜梁企业提供专业的成都做网站、网站建设,铜梁网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。
TO_DATE('2020-03-25 11:05:00', 'YYYY-MM-DD HH24:MI:SS')
使用日期值指定日期字面量时,必须使用公历的日期值。同时也可以如下所示,使用 ANSI 来指定日期字面量,ANSI 日期字面量不包含时间信息,而且必须使用 YYYY-MM-DD 的格式:
DATE '2020-03-25'
此外,还可以使用数据库默认日期值来指定日期字面量,当在日期表达式中使用默认值时,OceanBase 会自动将默认日期格式的字符值转换为日期值。数据库的默认日期值由初始化参数NLS_DATE_FORMAT
指定,此示例中默认格式为 DD-MON-RR :
TO_DATE('25-FEB-20', 'DD-MON-RR')
如果您指定不带时间成分的日期值,则默认时间为午夜(24 小时制 00:00:00 和 12 小时制 12:00:00)。如果指定的日期值不带日期成分,则默认日期为当前月份的第一天。
OceanBase 数据库中默认的日期格式为 DD-MON-RR,如果需要同时显示时间值,可以通过执行 alter session set NLS_DATE_FORMAT = 'DD-MON-RR HH24:MI:SS';
命令修改变量 NLS_DATE_FORMAT
的值。因此,如果查询 DATE 列,则必须在查询中指定时间字段,或确保 DATE 列中的时间字段设置为午夜。否则,数据库可能不会返回您期望的查询结果。比如创建一张具有 id 列和 datecol 日期列的表 Date_Literals:
CREATE TABLE Date_Literals (id NUMBER, datecol DATE);
在表中插入当前会话的系统日期时间 SYSDATE,此示例使用了 TRUNC
函数将时间字段设置为午夜,TRUNC
函数会截取 SYSDATE 的日期部分,这样 datecol 列中的时间会自动填充默认的午夜时间:
INSERT INTO Date_Literals VALUES (1,SYSDATE);
INSERT INTO Date_Literals VALUES (2,TRUNC(SYSDATE));
此时表中数据为:
+------+---------------------+
| id | datecol |
+------+---------------------+
| 1 | 25-FEB-20 11:28:16 |
| 2 | 25-FEB-20 00:00:00 |
+------+---------------------+
当查询中不包含时间信息时,可以在查询中使用大于或小于条件,而不是等于或不等于条件:
SELECT * FROM Date_Literals WHERE datecol > TO_DATE('2020-02-24', 'YYYY-MM-DD');
返回结果:
+------+---------------------+
| id | datecol |
+------+---------------------+
| 1 | 25-FEB-20 11:28:16 |
| 2 | 25-FEB-20 00:00:00 |
+------+---------------------+
当使用等于条件时,由于查询中不包含时间信息,所以结果只返回了时间信息为午夜值的日期:
SELECT * FROM Date_Literals WHERE datecol = TO_DATE('2020-02-25', 'YYYY-MM-DD');
返回结果:
+------+---------------------+
| id | datecol |
+------+---------------------+
| 2 | 25-FEB-20 00:00:00 |
+------+---------------------+
反过来,可以过滤掉 datecol 列中的时间字段,只查询日期字段:
SELECT * FROM Date_Literals WHERE TRUNC(datecol) = DATE '2020-02-25';
返回结果:
+------+---------------------+
| id | detacol |
+------+---------------------+
| 1 | 25-FEB-20 11:28:16 |
| 2 | 25-FEB-20 00:00:00 |
+------+---------------------+
网站名称:创新互联OceanBase教程:OceanBase日期字面量
文章位置:http://www.shufengxianlan.com/qtweb/news20/529620.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联