postgresql中的to_char()用法和Oracle相比,多了一個(gè)參數(shù)。
to_char(待轉(zhuǎn)換值,轉(zhuǎn)換格式);
常用轉(zhuǎn)換格式有2種:
一個(gè)是寫若干個(gè)0,如果待轉(zhuǎn)換的值位數(shù)少于于你定義的轉(zhuǎn)換格式位數(shù),輸出值會(huì)自動(dòng)在左邊補(bǔ)0,位數(shù)補(bǔ)齊到轉(zhuǎn)換格式的長(zhǎng)度;如果待轉(zhuǎn)換的值位數(shù)多于你定義的轉(zhuǎn)換格式位數(shù),輸出值為:##(長(zhǎng)度跟你定義的轉(zhuǎn)換格式一樣);
另一個(gè)是寫若干個(gè)9,如果待轉(zhuǎn)換的值位數(shù)少于你定義的轉(zhuǎn)換格式位數(shù),正常輸出;
如果待轉(zhuǎn)換的值位數(shù)多于于你定義的轉(zhuǎn)換格式位數(shù),輸出值為:##(長(zhǎng)度跟你定義的轉(zhuǎn)換格式一樣);
轉(zhuǎn)換格式如果寫其他數(shù)字,輸出結(jié)果為轉(zhuǎn)換格式的值。
補(bǔ)充:Postgresql中使用to_char進(jìn)行yyyy-MM-dd HH:mm:ss轉(zhuǎn)換時(shí)要注意的問題
在java和一些常用的數(shù)據(jù)中(mysql/sqlsever)中進(jìn)行年月日分秒轉(zhuǎn)換的時(shí)候,都是用
SELECT to_char(CURRENT_DATE,'yyyy-MM-dd hh:MM:ss')
但是在Postgresql中這樣用就會(huì)出現(xiàn)問題,在pg中執(zhí)行上面的語句返回的結(jié)果為
2015-05-06 12:05:00
看到了,這并不是我們想要的,那怎么處理呢?在pg中要用下面的方法
SELECT to_char(CURRENT_DATE,'yyyy-MM-dd hh24:MI:ss')
結(jié)果如下
2015-05-06 00:00:00
這才是我們想要結(jié)果,看來不能想當(dāng)然的,認(rèn)為所有數(shù)據(jù)庫都是一樣的,要細(xì)心!
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- PostgreSQL 字符串處理與日期處理操作
- PostgreSQL字符切割:substring函數(shù)的用法說明
- Postgresql 截取字符串的案例
- postgresql 實(shí)現(xiàn)字符串分割字段轉(zhuǎn)列表查詢
- postgresql 查詢集合結(jié)果用逗號(hào)分隔返回字符串處理的操作
- postgresql 將逗號(hào)分隔的字符串轉(zhuǎn)為多行的實(shí)例
- PostgreSQL向數(shù)據(jù)庫表中添加行數(shù)據(jù)的操作