我得到错误消息: ORA-01843:在执行sql脚本后的一个月内无效。
我尝试使用“标准”日期格式yyyy。
SQL/PL是否不理解alter语句?
set linesize 200
set pagesize 1000
alter session set NLS_NUMERIC_CHARACTERS = ',.';
alter session set NLS_DATE_FORMAT = 'yyyy-mm-dd';
select
*
from my_table
where
date >= '2019-08-31';
exit发布于 2021-12-20 18:25:06
在我看来,您需要的不是将日期值与字符串进行比较。
假设这里的date实际上代表一个DATE数据类型列(为什么不发布表描述?)(如前所述,不能这样命名列,除非将其名称括在双引号中)。
where date >= '2019-08-31'
---- ------------
DATE this is a string
datatype使用日期文字,它总是有一个DATE关键字和'yyyy-mm-dd'格式的日期
where date >= date '2019-08-31'或者,使用具有适当格式掩码的to_date函数:
where date >= to_date('2019-08-31', 'yyyy-mm-dd')如果date列(我们已经知道的名称错误)实际上包含字符串,并且您希望它们都遵循'yyyy-mm-dd'格式,那么有些值就不包含了。将日期存储到varchar2数据类型列中几乎总是一个坏主意。没有人阻止您将例如'2019-ac-31'存储到其中,而且这不是一个有效的日期值。
https://stackoverflow.com/questions/70424923
复制相似问题