Oracle10g Oracle SQL:将年份扩展为完整日期

Oracle10g Oracle SQL:将年份扩展为完整日期,oracle10g,Oracle10g,回答起来一定很简单,但在Oracle中如何将一年扩展到一个完整的日期,例如 1996至1996-01-01 00:00:00 编辑 一年的数据类型是char,最后我想将今年与字符串日期进行比较,例如 1996如果以字符串形式开始年份,并希望以DATE对象结束,则使用to_DATE()函数;但您需要提供一个虚拟月份,否则它将默认为指定年份中当前月份的第一天: select to_date('1996', 'YYYY') from dual; May, 01 1996 00:00:00+0000

回答起来一定很简单,但在Oracle中如何将一年扩展到一个完整的日期,例如

1996
1996-01-01 00:00:00

编辑

一年的数据类型是char,最后我想将今年与字符串日期进行比较,例如


1996
如果以字符串形式开始年份,并希望以
DATE
对象结束,则使用
to_DATE()
函数;但您需要提供一个虚拟月份,否则它将默认为指定年份中当前月份的第一天:

select to_date('1996', 'YYYY') from dual;

May, 01 1996 00:00:00+0000

随着月份的增加,为了使日期更加清晰,附加了一个合适的格式模型:

select to_date('1996' ||'-01-01', 'YYYY-MM-DD') from dual

January, 01 1996 00:00:00+0000
。我将年份和
'-01-01'
文本分开并连接在一起,假设您将使用一个真正的变量

WHERE
子句中,使用最初显示的示例日期:

select * from dual
where to_date('1996' ||'-01-01', 'YYYY-MM-DD')
  <= to_date('1998-31-12 12:04:35', 'YYYY-DD-MM HH24:MI:SS')
select*from dual
截止日期(‘1996’| |’-01-01’,‘YYYY-MM-DD’)

当前年份的数据类型是什么?您希望以什么数据类型结束-日期或该格式的字符串?好问题:年份的数据类型是字符。我想以一个日期结束。“我得到预先格式化的日期”-a
date
没有格式,它有一个内部表示。所以
1996-12-31 00:00:00
是一个字符串,而不是一个
DATE
?你让我思考(我是SQL的新手),我必须回复我的答案:它必须是一个字符串(我不知道像这样的字符串比较可以与SQL进行比较)谢谢,我的目标是在它之后有类似的东西
WHERE(to_DATE(table.year_char,'YYYY'))但是上面的一些问题:
ORA-01861:literal与格式字符串不匹配
@HeinrichStack-在最后的
WHERE(table.year|u char | |“-01-01 00:00:00”你是对的,在最后的版本中它工作正常。它出现在上面的语句中。但是,我将使用最后的版本。
WHERE (table.year_char || '-01-01 00:00:00' <= '1996-12-31 00:00:00')