oracle日期转换问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle日期转换问题相关的知识,希望对你有一定的参考价值。

select * from Auction where 1=1 and auctionendtime<=to_date('2014-10-10 23:01:56.0','YYYY-MM-DD HH24:MI:SS');
这行代码出现“日期格式图片在转换整个输入字符串之前结束”。请问在不删掉日期2014-10-10 23:01:56.0中的.0的时候该如何解决?求指点。

出现这个问题是因为最后有个.0
去掉了就好了,
你可以用substr()截取.0前的的字符,
也可以用replace函数将.0替换为空。
select * from Auction where 1=1 and auctionendtime<=
to_date(replace(\'2014-10-10 23:01:56.0\',\'.0\'),\'YYYY-MM-DD HH24:MI:SS\');
参考技术A 好像没有办法的,只有去掉.0的内容

oracle的日期格式,只有年月日时分秒,没有毫秒。

如何在 oracle 触发器中转换日期类型变量的时区

【中文标题】如何在 oracle 触发器中转换日期类型变量的时区【英文标题】:How to convert timezone of date type variable in oracle trigger 【发布时间】:2020-08-31 15:55:45 【问题描述】:

如果我有日期类型变量

date_time date := sysdate; -- Suppose the timezone is EST.

现在,如何将变量的时区转换为 UTC?

【问题讨论】:

您要更改值还是只更改时区?更多解释你真正想做的事情会有所帮助。 时区 (TZ) 与日期无关,甚至与时间戳无关。但是,它们可用于 TIMESTAMP WITH TIME ZONE 定义的列。这就是为什么下面的两个答案都显示 SYSTIMESTAMP,因为“返回系统日期,包括数据库所在系统的小数秒和时区” 【参考方案1】:

你可以试试这个:

SELECT SYSTIMESTAMP at time zone 'UTC' FROM DUAL;

【讨论】:

现在我如何将此查询的结果分配给date_time 变量? 您可以使用 pl/sql 块。 DECLARE ts VARCHAR2(50); BEGIN SELECT SYSTIMESTAMP at time zone 'UTC' INTO ts FROM DUAL; DBMS_OUTPUT.PUT_LINE(ts); END; / 如果它解决了问题,请考虑接受这个答案!【参考方案2】:

你的问题不是很清楚你到底需要什么,但如果我理解正确,你需要 UTC 时间

SELECT CAST(sys_extract_utc(SYSTIMESTAMP) AS TIME) FROM DUAL;

【讨论】:

现在我如何将此查询的结果分配给date_time 变量? 是的,您可以使用 into 子句进行分配。

以上是关于oracle日期转换问题的主要内容,如果未能解决你的问题,请参考以下文章

oracle 字符型中文日期怎么转换成日期型

oracle日期转换函数怎么调优

oracle日期转换

oracle怎么把数值型日期转换成日期字符型

oracle SQL语句,日期格式转换

oracle日期转换