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的时候该如何解决?求指点。
去掉了就好了,
你可以用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日期转换问题的主要内容,如果未能解决你的问题,请参考以下文章