您好,登录后才能下订单哦!
怎么在postgreSQL中将timestamp转换成date格式?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
方式一:
select to_date( to_char( f.begin_time, 'yyyy-mm-dd' ), 'yyyy-mm-dd' ) from hafd f
select f.begin_time::DATE from hafd f
大概比较了一下,9万条测试数据,方式二的性能更好!
补充:PostgreSQL中的时间戳格式转化常识
前提:当数据库中保存的是timestamp类型时,我们需要通过这个时间戳来做乐观数据锁,那么久需要Select出来,然后在更新的时候在Update的where条件中判断时间戳是否与查询时相同。
下面的SQL文查询结果是 "2018-08-20 10:09:10.815125",并且返回类型可以当String处理。返回json等都方便使用。
SQL> select to_char(updateTime, 'yyyy-mm-dd hh34: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 hh34: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)(第一周从该年的第一天开始) | 
关于怎么在postgreSQL中将timestamp转换成date格式问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。