PostgreSQL常见日期转换

这篇具有很好参考价值的文章主要介绍了PostgreSQL常见日期转换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据日期’${data_dt}’
格式如:‘20230112’

上日

to_date('${data_dt}','yyyymmdd') -1

本月初

date(date_trunc('month',to_date('${data_dt}','yyyymmdd')))

本月末

date(date_trunc('month',to_date('${data_dt}','yyyymmdd')) + interval'1 months' -interval'1 day')

上月末

date(date_trunc('month',to_date('${data_dt}','yyyymmdd'))-interval'1 day')
date(date_trunc('month',to_date('${data_dt}','yyyymmdd'))) -1

上季末

date(date_trunc('quarter',to_date('${data_dt}','yyyymmdd'))-interval'1 day')

上年末

date(date_trunc('year',to_date('${data_dt}','yyyymmdd'))-interval'1 day')

去年同期

date(to_date('${data_dt}','yyyymmdd') - interval'12 MONTH')
date(to_date('${data_dt}','yyyymmdd') - interval'1 YEAR')

当年已过天数

(to_date('${data_dt}','yyyymmdd')-(date(date_trunc('year',to_date('${data_dt}','yyyymmdd')))-1))

EXTRACT日期转换
取月份 EXTRACT 的结果为duoble 类型无法参与运算,可以使用cast将 EXTRACT 的结果转为INT类型

cast(EXTRACT(MONTH FROM date'${data_dt}') as int)

当月第几天

extract(day from to_date('${data_dt}','yyyymmdd'))

当年第几周

extract(week from to_date('${data_dt}','yyyymmdd'))

当年第几月

extract(month from to_date('${data_dt}','yyyymmdd'))

本周第一天

date(date_trunc('week',to_date('${data_dt}','yyyymmdd'))) as week_one_day

本周末

date(date_trunc('week',to_date('${data_dt}','yyyymmdd'))+interval '1 week' - interval'1 day') as week_last_day
-- 2
date(date_trunc('week',to_date('${data_dt}','yyyymmdd'))+interval'6 day') as week_last_day

本周第几天

--1
cast when cast(extract(dow from to_date('${data_dt}','yyyymmdd')) as int) = 0 then 7
     else cast(extract(dow from to_date('${data_dt}','yyyymmdd')) as int)
	 end
	 as day_of_week
--2
to_date('${data_dt}','yyyymmdd') - date(date_trunc('week',to_date('${data_dt}','yyyymmdd'))) +1

时间戳(年月日时分秒)与时间戳(秒单位)
1.将文本格式数据转为时间戳

to_timestamp('2022-09-05 18:34:00', 'YYYY-MM-DD HH24:MI:SS')
to_timestamp(concat_ws(' ',to_char(data_date,'yyyy-mm-dd'),to_char(data_time,'hh24:mi:ss')),'yyyy-mm-dd hh24:mi:ss')

2.将时间戳转换为Unix时间戳(以秒为单位),可以使用extract函数和epoch

extract(epoch FROM to_timestamp('2022-09-05 18:34:00', 'YYYY-MM-DD HH24:MI:SS'))

3.将时间戳转换为 ‘prc’(即中国时区),以秒为单位

extract(epoch from cast('2022-09-05 18:34:00' as timestamp)) - 28000
to_timestamp(extract(epoch FROM cast('2022-09-05 18:34:00' as timestamp)) - 28000)
cast(extract(epoch from cast(concat_ws(' ',to_char(data_date,'yyyy-mm-dd'),to_char(data_time,'hh24:mi:ss')) as timestamp)) - 28800 as varchar ) as data_tm

4.将以秒为单位的时间转为中国时区文章来源地址https://www.toymoban.com/news/detail-595252.html

to_timestamp(1662374040) at time zone 'prc' as timestamp

到了这里,关于PostgreSQL常见日期转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Postgresql SQL 字段拼接

    本文介绍Postgresql 数据库sql字段拼接的方法。 1.使用字符串连接函数 2.使用字符串连接操作符 使用 CONCAT() 函数将 pkey和 vname字段进行拼接 3.使用字符串拼接函数 使用 CONCAT_WS() 函数,其中第一个参数为拼接的分隔符(在示例中为’ \\\'),后续参数为要拼接的字段,以此将多个字

    2024年02月04日
    浏览(40)
  • PostgreSQL常用运维SQL

    1、获取数据库实例连接数 2、获取数据库最大连接数 3、查询当前连接数详细信息 4、查询数据库中各个用户名对应的数据库连接数 1、为指定用户赋予指定表的select权限 2、修改数据库表所属的ownner 3、授予指定用户指定表的所有权限 4、授予指定用户所有表的所有权限 1、获

    2024年02月08日
    浏览(30)
  • postgresql中基础sql查询

    postgresql命令速查 SQL使用SELECT和FROM查询表中的数据, * 表示查询全部字段; PostgreSQL提供了无表查询的扩展,使用 AS 指定别名; 使用 DISTINCT 去除查询结果中的重复值; PostgreSQL 支持两种格式的代码注释。 PostgreSQL 使用 WHERE 子句过滤表中的数据; PostgreSQL 提供了以下比较运算

    2024年02月12日
    浏览(92)
  • PostgreSQL慢sql原因和优化方案

    1. 数据库服务器硬件不足,例如CPU、内存、磁盘I/O等。 2. 数据库中存在大量的慢查询,需要优化查询语句或索引。 3. 数据库中存在大量的并发连接,需要调整数据库连接池的大小。 4. 数据库中存在大量的锁争用,需要优化事务隔离级别或调整锁等待时间。 5. 数据库中存在大

    2024年02月06日
    浏览(42)
  • 【sql高级】postgresql之窗口函数用法

    窗口函数在在SQL中是非常有用的工具,特别是在需要对查询结果进行分析、排名、聚合或者对结果进行一些特定的计算时。以下是一些常见的场景: 排名和分组:窗口函数可以轻松地对结果集进行排名、分组和分区。例如,你可以使用 ROW_NUMBER()、RANK()、DENSE_RANK() 等函数来为

    2024年03月23日
    浏览(45)
  • PostgreSQL查询慢sql原因和优化方案

    PostgreSQL sql查询慢优化方案有一下几种解决方案: 查询慢sql的执行会话,关闭进程。 查看数据库后台连接进程 查看数据库后台连接进程,但是此条SQL不包含当前查询进程 查看当前慢SQL,例如查询执行时间超过1秒的SQL 可以使用pg_terminate_backend()终止连接。您必须是超级用户才能

    2024年02月13日
    浏览(60)
  • [SQL系列] 从头开始学PostgreSQL 分库分表

            分库分表是一种数据库架构设计的方法,用于应对大规模数据的存储和查询。当单个数据库的存储容量或查询性能无法满足需求时,可以通过将数据分散存储在多个数据库服务器上,以提高系统的可扩展性和性能。         分库分表通常包括两个步骤:分库和

    2024年02月14日
    浏览(37)
  • Flink-SQL 写入PostgreSQL 问题汇总

    ​ 错误信息 问题原因 解决 确定主键属性是否有空值,若为空则确定是否可作为主键属性(若正确则将其置为默认值);若不符合业务情况,则重新定义主属性集合,确保不出现空值 ​ 错误信息 错误原因 解决 原因:postgreSQL包含database,schema,table三级结构,在生产环境未

    2024年02月04日
    浏览(39)
  • 了解PostgreSQL sql shell和VACUUM命令

    从SQL Shell进入PostgreSQL;没用过这东西,看一下;     一直回车;最后输入口令就登入了;此时是登入默认的数据库postgres;这个数据库是默认安装的; 看一下有没有表,根据资料可以用 d 或者 select * from pg_tables;此数据库默认没有表;   新建一个表看一下;第一次出错;

    2024年02月16日
    浏览(28)
  • FLINK CDC postgresql (Stream与SQL)

    Postgres CDC Connector — CDC Connectors for Apache Flink® documentation flink cdc捕获postgresql数据 1)更改配置文件 需要更改 # 更改wal日志方式为logical # 更改solts最大数量(默认值为10),flink-cdc默认一张表占用一个 # 更改wal发送最大进程数(默认值为10),这个值和上面的solts设置一样 # 中断

    2023年04月27日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包