postgresql中的时间戳格式化
作者:cqdzbingxu
这篇文章主要介绍了postgresql中的时间戳格式化问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
postgresql时间戳格式化
平时总记不住pg里面怎么将时间戳格式化,记录常用的格式化时间
select to_char(to_timestamp(1608018517000 / 1000),'yyyy');
-- 年-月
select to_char(to_timestamp(1608018517000 / 1000),'yyyy-MM');
-- 年-月-日
select to_char(to_timestamp(1608018517000 / 1000),'yyyy-MM-dd');
-- 年-月-日 时
select to_char(to_timestamp(1608018517000 / 1000),'yyyy-MM-dd HH24'); 对应JAVA 的“yyyy-MM-dd HH”
-- 年-月-日 时:分
select to_char(to_timestamp(1608018517000 / 1000),'yyyy-MM-dd HH24:MI');对应JAVA 的“yyyy-MM-dd HH:mm”
-- 年-月-日 时:分:秒
select to_char(to_timestamp(1608018517000 / 1000),'yyyy-MM-dd HH24:MI:SS');对应JAVA 的“yyyy-MM-dd HH:mm:ss”
postgresql中时间戳格式转化常识
前提:当数据库中保存的是timestamp类型时,我们需要通过这个时间戳来做乐观数据锁,那么久需要Select出来,然后在更新的时候在Update的where条件中判断时间戳是否与查询时相同。
下面的SQL文查询结果是 "2018-08-20 10:09:10.815125",并且返回类型可以当String处理。返回json等都方便使用。
SQL> select to_char(updateTime, 'yyyy-mm-dd hh24:mi:ss.us') from tbl_A;
更新时,参数传入“2018-08-20 10:09:10.815125”的字符串,那么需要在SQL中转化来匹配updateTime字段的timeStamp数据类型。
SQL> update tbl_A set username='XXX' where userid='001' and updateTime = to_timestamp('2018-08-20 10:09:10.815125','yyyy-mm-dd hh24:mi:ss.us');
另附表一张
函数
|
返回类型
|
描述
|
例子
|
to_char(timestamp, text)
|
text
|
把时间戳转换成字串
|
to_char(current_timestamp, 'HH12:MI:SS')
|
to_char(interval, text)
|
text
|
把时间间隔转为字串
|
to_char(interval '15h 2m 12s', 'HH24:MI:SS')
|
to_char(int, text)
|
text
|
把整数转换成字串
|
to_char(125, '999')
|
to_char(double precision, text)
|
text
|
把实数/双精度数转换成字串
|
to_char(125.8::real, '999D9')
|
to_char(numeric, text)
|
text
|
把numeric转换成字串
|
to_char(-125.8, '999D99S')
|
to_date(text, text)
|
date
|
把字串转换成日期
|
to_date('05 Dec 2000', 'DD Mon YYYY')
|
to_timestamp(text, text)
|
timestamp
|
把字串转换成时间戳
|
to_timestamp('05 Dec 2000', 'DD Mon YYYY')
|
to_timestamp(double)
|
timestamp
|
把UNIX纪元转换成时间戳
|
to_timestamp(200120400)
|
to_number(text, text)
|
numeric
|
把字串转换成numeric
|
to_number('12,454.8-', '99G999D9S')
|
模式
|
描述
|
HH
|
一天的小时数(01-12)
|
HH12
|
一天的小时数(01-12)
|
HH24
|
一天的小时数(00-23)
|
MI
|
分钟(00-59)
|
SS
|
秒(00-59)
|
MS
|
毫秒(000-999)
|
US
|
微秒(000000-999999)
|
AM
|
正午标识(大写)
|
Y,YYY
|
带逗号的年(4和更多位)
|
YYYY
|
年(4和更多位)
|
YYY
|
年的后三位
|
YY
|
年的后两位
|
Y
|
年的最后一位
|
MONTH
|
全长大写月份名(空白填充为9字符)
|
Month
|
全长混合大小写月份名(空白填充为9字符)
|
month
|
全长小写月份名(空白填充为9字符)
|
MON
|
大写缩写月份名(3字符)
|
Mon
|
缩写混合大小写月份名(3字符)
|
mon
|
小写缩写月份名(3字符)
|
MM
|
月份号(01-12)
|
DAY
|
全长大写日期名(空白填充为9字符)
|
Day
|
全长混合大小写日期名(空白填充为9字符)
|
day
|
全长小写日期名(空白填充为9字符)
|
DY
|
缩写大写日期名(3字符)
|
Dy
|
缩写混合大小写日期名(3字符)
|
dy
|
缩写小写日期名(3字符)
|
DDD
|
一年里的日子(001-366)
|
DD
|
一个月里的日子(01-31)
|
D
|
一周里的日子(1-7;周日是1)
|
W
|
一个月里的周数(1-5)(第一周从该月第一天开始)
|
WW
|
一年里的周数(1-53)(第一周从该年的第一天开始)
|
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
电脑版
-
返回首页
2006-2023 脚本之家 JB51.Net , All Rights Reserved.
苏ICP备14036222号