sql语句中的日期格式


最近遇到一个小问题,在这里记录一下。

问题描述

有一条查询语句,大致如下:

1 select * from table where create_date = '2020-04-12' and status = '10' with ur

当使用数据库工具AQT进行查询时,可以正确查到数据。但通过远程SSH连接数据库进行查询时,却怎么都查不到。

原因分析

通过对条件进行分析(实际条件要比上例复杂),定位到大概率是日期格式问题。于是分别在AQT和SSH客户端执行以下语句:

1 select create_date from table where status = '10' with ur

果然,AQT的数据格式是这样的  yyyy-MM-dd  ,而在SSH是这样的  MM/dd/yyyy  。 create_date 是DATE类型的数据列。

通过分析后了解到,常用的数据库工具一般在处理和展示日期类型的数据时,会自动进行格式转换,也算是帮用户封装具体细节,减少对数据列的细节的了解。

不过在这地方相当于好心办了坏事。修改查询语句如下:

1 select * from table where create_date = date('2020-04-12') and status = '10' with ur

通过在sql语句中先转换成日期格式,避免在不同环境下执行的效果不一样。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM