国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

pl/sql developer中TIMESTAMP的顯示格式

2024-07-21 02:41:57
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Oracle中的TIMESTAMP數(shù)據(jù)類(lèi)型很多人用的都很少,所以即使最簡(jiǎn)單的一個(gè)查詢(xún)返回的結(jié)果也會(huì)搞不清楚到底這個(gè)時(shí)間是什么時(shí)間點(diǎn)。

例如:

27-1月 -08 12.04.35.877000 上午

這個(gè)時(shí)間到底是幾點(diǎn)呢?中午12:04分,那就錯(cuò)了,其實(shí)使用to_char函數(shù)轉(zhuǎn)換后得到如下結(jié)果:

2008-01-27 00:04:35:877000

說(shuō)明這個(gè)時(shí)間是凌晨的00:04分,而不是中午的12:04分。

發(fā)生此問(wèn)題的原因如下:

示例:

SELECT TO_CHAR(TO_DATE('2008-01-29 00:05:10', 'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh:mi:ss am') FROM DUAL

首先把一個(gè)00:05分的時(shí)間進(jìn)行轉(zhuǎn)換,按照'yyyy-mm-dd hh:mi:ss am'格式進(jìn)行轉(zhuǎn)換,得到的結(jié)果是:

2008-01-29 12:05:10 上午

這說(shuō)明Oracle在進(jìn)行日期轉(zhuǎn)換成字符串的過(guò)程中,如果小時(shí)轉(zhuǎn)換使用的是12進(jìn)制的格式,則凌晨00點(diǎn)會(huì)被認(rèn)為是上午12點(diǎn),然后才是上午1點(diǎn)、2點(diǎn)、3點(diǎn)。。。

oracle中12進(jìn)制的計(jì)時(shí)不是從0-11,而是從1-12的,所以如果是夜里零點(diǎn),你不能記成1點(diǎn),那只能記成12點(diǎn)了。(不知道這是不是跟洋人的習(xí)慣有關(guān)?)


現(xiàn)在我們來(lái)看一下Oracle中對(duì)TIMESTAMP的處理:

SELECT VALUE FROM NLS_session_PARAMETERS WHERE PARAMETER = 'NLS_TIMESTAMP_FORMAT'

返回結(jié)果DD-MON-RR HH.MI.SSXFF AM,可以看到,這里默認(rèn)情況下,使用的TIMESTAMP的格式是12進(jìn)制的小時(shí)。

問(wèn)題到這里已經(jīng)找到根源了。


解決方法:

pl/sql developer中讀取的是注冊(cè)表中設(shè)置的NLS_TIMESTAMP_FORMAT格式,那么只要在注冊(cè)表中設(shè)置Oracle環(huán)境變量的地方(也就是設(shè)置ORACLE_HOME的地方)設(shè)置NLS_TIMESTAMP_FORMAT的格式(也就是創(chuàng)建這樣一個(gè)字符串項(xiàng),然后設(shè)置它的值為你轉(zhuǎn)換需要的掩碼,我一般設(shè)置為YYYY-MM-DD HH24:MI:SS:FF6),然后關(guān)掉PL/SQL DEVELOPER,再繼續(xù)登陸,以后我們看到的TIMESTAMP時(shí)間就會(huì)自動(dòng)轉(zhuǎn)換成大家需要的格式了。


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 盐城市| 安阳市| 延庆县| 临邑县| 噶尔县| 大洼县| 兴隆县| 石河子市| 上蔡县| 英山县| 水富县| 扎兰屯市| 门头沟区| 南岸区| 江永县| 阿鲁科尔沁旗| 晴隆县| 陆河县| 台北县| 蓝山县| 堆龙德庆县| 福贡县| 汉阴县| 汾西县| 余姚市| 都昌县| 吕梁市| 凤翔县| 垫江县| 兴宁市| 邵阳县| 莱州市| 杨浦区| 广河县| 成都市| 镇坪县| 盐池县| 通渭县| 天等县| 台江县| 延安市|