新聞中心
日期(DATE)字面量可以通過字符串指定,或者可以使用 ?TO_DATE?函數(shù)將字符或數(shù)字值轉(zhuǎn)換為日期值。日期字面量是唯一接受用 ?TO_DATE? 表達式代替字符串指定值的:

創(chuàng)新互聯(lián)長期為近1000家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為銅梁企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站建設,銅梁網(wǎng)站改版等技術服務。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
TO_DATE('2020-03-25 11:05:00', 'YYYY-MM-DD HH24:MI:SS')使用日期值指定日期字面量時,必須使用公歷的日期值。同時也可以如下所示,使用 ANSI 來指定日期字面量,ANSI 日期字面量不包含時間信息,而且必須使用 YYYY-MM-DD 的格式:
DATE '2020-03-25'此外,還可以使用數(shù)據(jù)庫默認日期值來指定日期字面量,當在日期表達式中使用默認值時,OceanBase 會自動將默認日期格式的字符值轉(zhuǎn)換為日期值。數(shù)據(jù)庫的默認日期值由初始化參數(shù)?NLS_DATE_FORMAT? 指定,此示例中默認格式為 DD-MON-RR :
TO_DATE('25-FEB-20', 'DD-MON-RR')如果您指定不帶時間成分的日期值,則默認時間為午夜(24 小時制 00:00:00 和 12 小時制 12:00:00)。如果指定的日期值不帶日期成分,則默認日期為當前月份的第一天。
OceanBase 數(shù)據(jù)庫中默認的日期格式為 DD-MON-RR,如果需要同時顯示時間值,可以通過執(zhí)行 ?alter session set NLS_DATE_FORMAT = 'DD-MON-RR HH24:MI:SS'; ?命令修改變量 ?NLS_DATE_FORMAT? 的值。因此,如果查詢 DATE 列,則必須在查詢中指定時間字段,或確保 DATE 列中的時間字段設置為午夜。否則,數(shù)據(jù)庫可能不會返回您期望的查詢結(jié)果。比如創(chuàng)建一張具有 id 列和 datecol 日期列的表 Date_Literals:
CREATE TABLE Date_Literals (id NUMBER, datecol DATE);在表中插入當前會話的系統(tǒng)日期時間 SYSDATE,此示例使用了 ?TRUNC? 函數(shù)將時間字段設置為午夜,?TRUNC? 函數(shù)會截取 SYSDATE 的日期部分,這樣 datecol 列中的時間會自動填充默認的午夜時間:
INSERT INTO Date_Literals VALUES (1,SYSDATE);
INSERT INTO Date_Literals VALUES (2,TRUNC(SYSDATE));此時表中數(shù)據(jù)為:
+------+---------------------+
| 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');返回結(jié)果:
+------+---------------------+
| id | datecol |
+------+---------------------+
| 1 | 25-FEB-20 11:28:16 |
| 2 | 25-FEB-20 00:00:00 |
+------+---------------------+當使用等于條件時,由于查詢中不包含時間信息,所以結(jié)果只返回了時間信息為午夜值的日期:
SELECT * FROM Date_Literals WHERE datecol = TO_DATE('2020-02-25', 'YYYY-MM-DD');返回結(jié)果:
+------+---------------------+
| id | datecol |
+------+---------------------+
| 2 | 25-FEB-20 00:00:00 |
+------+---------------------+反過來,可以過濾掉 datecol 列中的時間字段,只查詢?nèi)掌谧侄危?/p>
SELECT * FROM Date_Literals WHERE TRUNC(datecol) = DATE '2020-02-25';返回結(jié)果:
+------+---------------------+
| id | detacol |
+------+---------------------+
| 1 | 25-FEB-20 11:28:16 |
| 2 | 25-FEB-20 00:00:00 |
+------+---------------------+ 分享標題:創(chuàng)新互聯(lián)OceanBase教程:OceanBase日期字面量
網(wǎng)址分享:http://m.fisionsoft.com.cn/article/cosiocd.html


咨詢
建站咨詢
