对postgresql日期和时间的比较
更新时间:2025年01月30日 07:56:35 作者:安達と島村
文章介绍了在数据库中处理日期和时间类型时的一些注意事项,包括如何将字符串转换为日期或时间类型,以及在比较时自动转换的情况,作者建议在使用数据库时,根据具体情况进行适当的类型转换,以避免潜在的错误
postgresql日期和时间比较
DB里保存到时分秒,需要和年月日比较
select date_trunc('day',now())=date_trunc('day',date('20200615')) --true select date_trunc('day',date('20200611')) --2020-06-11 00:00:00+00 select * from users where date_trunc('day',birthday)=date_trunc('day',date('20200401'))
db里存储date或者timestamp字段
需要和字符串比较时,建议先使用to_date或者to_timestamp转换。
测试发现pgsql往类型为timestamp的列插入字符串数据,或者用date/timestamp类型的数据跟字符串数据作比较时,会自动转换成对应的date/timestamp。
oracle未测试。
select to_date('2019-01-15 18:33:41','yyyy-MM-dd hh24:mi:ss'); select to_timestamp('2019-01-15 18:33:41','yyyy-MM-dd hh24:mi:ss');
select to_date('2019-01-15 18:33:42','yyyy-MM-dd hh24:mi:ss')= to_timestamp('2019-01-15 00:00:00','yyyy-MM-dd hh24:mi:ss'); >>true select to_timestamp('2019-01-15 18:33:42','yyyy-MM-dd hh24:mi:ss')- to_date('2019-01-15 18:33:42','yyyy-MM-dd hh24:mi:ss'); >>"18:33:42" select to_timestamp('2019-01-15 18:33:42','yyyy-MM-dd hh24:mi:ss')='2019/01/15'; >>false select to_date('2019-01-15 18:33:42','yyyy-MM-dd hh24:mi:ss')='2019/01/15'; >>true select to_date('2019-01-15 18:33:42','yyyy-MM-dd hh24:mi:ss')='2019-01-15'; >>true select to_date('2019-01-15 18:33:42','yyyy-MM-dd hh24:mi:ss')='20190115'; >>true select to_date('2019-01-15 18:33:42','yyyy-MM-dd hh24:mi:ss')='2019/01-15'; >>ERROR: date型の入力構文が不正です: "2019/01-15" SELECT time, to_timestamp('2011-12-13 14:15:16','yyyy-MM-dd hh24:mi:ss'), time=to_timestamp('2011-12-13 14:15:16','yyyy-MM-dd hh24:mi:ss'), time,to_date('2011-12-13 14:15:16','yyyy-MM-dd hh24:mi:ss'), time=to_date('2011-12-13 14:15:16','yyyy-MM-dd hh24:mi:ss') FROM public.product where id =21; >>"2011-12-13 14:15:16+09" >>"2011-12-13 14:15:16+09" >>true >>"2011-12-13 14:15:16+09" >>"2011-12-13" >>false
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Postgresql 跨库同步表及postgres_fdw的用法说明
这篇文章主要介绍了Postgresql 跨库同步表及postgres_fdw的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-01-01实操解决Navicat连接postgresql时出现‘datlastsysoid does not&
这篇文章主要介绍了实操解决Navicat连接postgresql时出现‘datlastsysoid does not exist‘报错的问题,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下2024-12-12基于PostgreSQL的时序数据库TimescaleDB的基本用法和概念
时序数据是指按照时间顺序存储的数据,TimescaleDB是一个开源的、扩展了PostgreSQL的时序数据库扩展,本文就给大家详细的介绍一下基于PostgreSQL的时序数据库TimescaleDB的基本用法和概念,需要的朋友可以参考下2023-06-06PGSQL 实现把字符串转换成double类型(to_number())
这篇文章主要介绍了PGSQL 实现把字符串转换成double类型(to_number()),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-12-12
最新评论