背景全文及翻译

背景

Oracle数据向MySQL同步,没有最新数据,于是在plsql手敲SQL筛选最新数据时,执行报错。

问题描述

通过日期字段筛选最近的数据,我用了类似这样的语句:

mysql 复制代码
SELECT *
FROM orders
WHERE order_date > '2022/01/01';

我信心满满按下F8,plsql给我报了这么个错误(或者是英文,同义):

复制代码
Oracle SQL错误:ORA-01861:文字与格式字符串不匹配

原因分析

开始的时候我以为日期中间的分隔符它不识别,然而换了什么符号都不行。

搜了一下,看到这篇博客

,文中提到在插入、筛选时间字段时都会有这个问题(更新应该也有),格式不匹配。

要注意到这里我们写的看着是个日期,但实际上在Oracle看来,这只是个字符串,并不能和日期格式的数据作比较。

只有日期格式相互之间才能比较。利用Oracle的TO_DATE函数,可将字符串转为日期/时间类型,这是Oracle之TO_DATE函数的详细用法

解决方案

使用TO_DATE,SQL如下:

sql 复制代码
SELECT *
FROM orders
WHERE order_date > TO_DATE('2022/01/01', 'YYYY/MM/DD');

声明:本文使用八爪鱼rpa工具从gitee自动搬运本人原创(或摘录,会备注出处)博客,如版式错乱请评论私信,如情况紧急或久未回复请致邮 xkm.0jiejie0@qq.com 并备注原委;引用本人笔记的链接正常情况下均可访问,如打不开请查看该链接末尾的笔记标题(右击链接文本,点击 复制链接地址,在文本编辑工具粘贴查看,也可在搜索框粘贴后直接编辑然后搜索),在本人博客手动搜索该标题即可;如遇任何问题,或有更佳方案,欢迎与我沟通!

相关推荐
满昕欢喜8 小时前
SQL Server从入门到项目实践(超值版)读书笔记 28
数据库·sql·sqlserver
DokiDoki之父16 小时前
Mybatis—入门 & (配置)SQL提示和日志输出
数据库·sql·mybatis
TDengine (老段)1 天前
TDengine 数学函数 DEGRESS 用户手册
大数据·数据库·sql·物联网·时序数据库·iot·tdengine
武子康1 天前
Java-152 深入浅出 MongoDB 索引详解 从 MongoDB B-树 到 MySQL B+树 索引机制、数据结构与应用场景的全面对比分析
java·开发语言·数据库·sql·mongodb·性能优化·nosql
武昌库里写JAVA2 天前
C语言 函数指针和指针函数区别 - C语言零基础入门教程
vue.js·spring boot·sql·layui·课程设计
冻咸鱼2 天前
MySQL中表操作
android·sql·mysql·oracle
TDengine (老段)2 天前
TDengine 数据函数 LEAST 用户手册
大数据·数据库·sql·时序数据库·tdengine
m0_736927042 天前
想抓PostgreSQL里的慢SQL?pg_stat_statements基础黑匣子和pg_stat_monitor时间窗,谁能帮你更准揪出性能小偷?
java·数据库·sql·postgresql
虾说羊2 天前
sql中连接方式
数据库·sql
兮兮能吃能睡2 天前
SQL中常见的英文术语及其含义
数据库·sql·oracle