格式参数日期oracle
我正在尝试格式化一个日期,我将通过变量获取该日期格式参数日期oracle,oracle,Oracle,我正在尝试格式化一个日期,我将通过变量获取该日期 select to_char( $$exec_Date ,'dd-mm-yy hh24:mi:ss') date from dual ; 淡水河谷是 select to_char( 04-02-2015 17:19:52 ,'dd-mm-yy hh24:mi:ss') date from
select to_char(
$$exec_Date ,'dd-mm-yy hh24:mi:ss')
date
from dual ;
淡水河谷是
select to_char(
04-02-2015 17:19:52 ,'dd-mm-yy hh24:mi:ss')
date
from dual ;
它很好用
select to_char(
sysdate ,'dd-mm-yy hh24:mi:ss')
date
from dual ;
有人能帮我一下我做错了什么吗?我已经调查过了
04-02-2015 17:19:52
Oracle不知道该值是日期还是字符串,或者是什么?您必须首先使用将文字转换为日期
但是,在您的例子中,您传递的值没有单引号,这意味着它不是文本。因此,您需要这样做:
select to_char(
to_date('04-02-2015 17:19:52','dd-mm-yyyy hh24:mi:ss') ,'dd-mm-yy hh24:mi:ss')
date
from dual ;
选择以添加字符(
截止日期('04-02-2015 17:19:52','dd-mm-yyyy hh24:mi:ss'),'dd-mm-yy hh24:mi:ss')
日期
来自双重;
注意单引号和to_date函数
使用TO_DATE将文字转换为日期,使用TO_CHAR将日期转换为文字。格式模型是最需要的
对于所有类型的计算,让日期保持原样。不需要将其转换为字符串。但是,如果您有一个字符串,则需要首先将其转换为日期以进行日期计算。当您希望以所需格式显示日期时间时,请使用来\u CHAR。您到底想对该日期做什么 如果您只是为了显示而使用它,那么您不需要做任何事情,因为它已经是一个字符串(除非您可能需要更改显示日期的格式?) 如果需要将其转换为日期,以便将其存储在日期列中,或用于日期比较,则需要使用
到日期
,而不是到字符
简言之:
- 如果您正在传递一个字符串(这就是您正在做的),并且希望将其转换为Oracle中的日期,请使用
to\u DATE
- 如果要以特定格式显示日期数据类型,请使用
来显示字符
to_char(sysdate,'dd-mm-yy-hh24:mi:ss')
工作-它将sysdate(日期数据类型)转换为该格式的字符串
在您的示例中,您需要执行到日期($$exec\u date,'dd-mm-yyyy-hh24:mi:ss')
如果你需要重新格式化,以2位数的年份来显示它(说真的?我知道y2k是15年前的事了,但还是…!),那么你需要在它周围放一个
to_char()
和相关的格式。看起来像一个字符串,而不是一个日期。代码嵌入在哪里?具体是什么语言,数据类型又是什么?如果它是一个字符串,那么您要做什么转换?您似乎只是在删除世纪号,从4位数字变为2位数字的年份?变量由DI工具给出,但采用datetime数据类型。因此,您在哪里看到“解析值”,它似乎已被格式化为字符串?编辑您的问题以提供一些上下文可能会有所帮助。如果您希望以所需格式显示日期时间,请使用to_CHAR。对于所有类型的计算,让日期保持原样。不需要将其转换为字符串。看看我的答案。