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

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


咨詢
建站咨詢
