首页 > 数据库 >Postgresql使用中踩过的坑

Postgresql使用中踩过的坑

时间:2023-06-20 16:12:54浏览次数:44  
标签:Postgresql MM dd jdbcType yyyy 日期 使用 date

一,日期类型的比较问题

  数据库中存储日期的字段为timestamp类型,而Java对象中对应属性的类型的Date类型,两者进行比较时,需要进行一定的格式转换。

  案例:数据库中存储的日期存在时分秒,现在要查询某个时间(某年某月某日)的数据,直接比较查询可能因为时分秒的不同导致查询到的数据为空,需要将DB中的日期格式和Java对象中对应属性的日期格式都转为“yyyy-MM-dd”,再进行比较。

  解决过程:通过to_date()函数将数据库中日期转换为‘yyyy-MM-dd’,Java接收前端的日期格式可能也有问题,我先用JsonFormat(pattern = "yyyy-MM-dd")注解放在Vo的对应字段上,但是发现没有用,接收到前端的数据还是存在时分秒,最后使用jdbcType=DATE放在sql中解决,实例代码如下:

select * from table where
to_date(insert_data,'yyyy-MM-dd') = #{insertDate,jdbcType=DATE}

  运行后执行发现继续报错,查看日志信息:Postgresql to_date(timestamp without time zone, unknown)不存在 Hint: 没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换.

  报错问题是Postgressql中to_date()函数的使用问题,正确使用方法:

select * from table where
to_date(insert_data::text,'yyyy-MM-dd') = #{insertData,jdbcType=DATE}

或者

select * from table where
to_date(cast(insert_data as TEXT),'yyyy-MM-dd') = #{insertData,jdbcType=DATE}

  第二种方法尝试成功,第二种方法也是网上的方法,自测使用!

 

标签:Postgresql,MM,dd,jdbcType,yyyy,日期,使用,date
From: https://www.cnblogs.com/linlin227/p/17493877.html

相关文章

  • 使用flutter_background_service创建后台服务
    介绍flutter_background_service,它是一个在Flutter应用中创建和管理后台服务的库,并提供了一种简单的方式来执行长时间运行的任务。使用方法下面是关于flutter_background_service的使用方法的详细介绍:1、创建服务使用flutter_background_service库,你可以创建一个后台服......
  • 爬虫代理ip使用时突然停了会如何
       当爬虫程序使用代理ip进行网络请求时,如果代理突然停了或出现其他问题,将会对程序的正常运行产生一定影响。下面我来介绍一下这种情况下可能出现的问题及解决方法。代理突然停止的影响 1.请求失败 当代理突然停止或无法连接时,爬虫程序将无法正常发送网络请求,导致请求......
  • 页面初始化使用this.$refs 为undefined
    在updated(){},中使用 链接:(33条消息)Vue中在mounted中通过this.$refs但是获取不到属性的几种常见情况分析_vue组件在mounted里面this.refs_林间有风H的博客-CSDN博客......
  • 数据指纹的生成,hashlib.md5的使用
    content=li.xpath('./div[1]/text()').extract_first()title=li.xpath('./div[2]/a/text()').extract_first()all_data=title+content#生成该数据的数据指纹importhashlib#导入一个生成数据指纹的模块m......
  • 消除if else & Optional 使用
    1、三目表达式获取对象的属性,判断对象是否为空,为空返回默认值Cc=newC("c");Stringname=c!=null?c.getName():DEFAULT_NAME;2、判断不为空再赋值Useruser=userDao.getUser(id);if(user!=null){user.setName("张三");}//使用OptionalOptional.ofN......
  • vue3和ts的一些使用
    一.setup变量不在写在data里面,反而在setup内写。<scriptlang="ts">import{defineComponent,ref}from"vue";exportdefaultdefineComponent({name:"App",setup(){constgirls=ref(["大脚","刘英","......
  • 使用docker-compose同时启动MySQL和Redis
    环境查看安装docker和docker-composeapt-yinstalldocker.iodocker-compose设置docker-compose配置文件root@iZ2zebcd9hncu1371fetliZ:/data/docker-compose#pwd/data/docker-composeroot@iZ2zebcd9hncu1371fetliZ:/data/docker-compose#catdocker-compose.ymlvers......
  • 传奇架设时遇到Mir.DB 数据格式不符合,请使用数据工具转换后再使用!如何解决?
    今天碰到一朋友说他从论坛上下载了一个版本,然后更新了自己服务器上的引擎,启动服务器的时候就提示|:Mir.DB数据格式不符合,请使用数据工具转换后再使用!出现这种情况的原因是原来别人在架设的时候用的引擎和你使用的引擎不一样,或者同样的引擎版本号不一样,原来别人的数据没有删除,才会......
  • 基于触摸屏和PLC开发的手持示教软件。 可控制4颗轴,操作简便。 使用者可
    基于触摸屏和PLC开发的手持示教软件。可控制4颗轴,操作简便。使用者可根据要求自行设定程序,支持输入输出、延时、单轴相对绝对定位、多轴差补、条件判断、跳转、循环指令。适合XYZ直角坐标机械手控制,以及上螺丝,点胶等应用场合,提供触摸屏及PLC源代码。PLC使用ST语言编写,易于移植。程......
  • 图书馆管理系统代码源码(php+css+js+mysql) 完整的代码源码,系统使用B/S架构。
    图书馆管理系统代码源码(php+css+js+mysql)完整的代码源码,系统使用B/S架构。优化过的界面,拥有管理员和普通用户,普通用户可注册登录,管理员可登录,功能齐全。管理员可管理普通用户,增加其他管理员,增添图书,借还书操作,查看已还书。普通用户,可在线查看现有图书,和自己已借图书。推荐使用php......