【发布时间】:2019-06-10 06:53:36
【问题描述】:
为什么
select trunc(to_date('23/06/2017','DD/MM/YYYY'), 'DAY') from dual;
返回
19.06.17
而不是预期的
23.06.17?
我们正在使用 Oracle 11。
【问题讨论】:
-
'DAY'截断到一周的开始:docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/… - 但问题是你为什么使用trunc()开始?select to_date('23/06/2017','DD/MM/YYYY') from dual;已经返回你想要的东西了 -
@a_horse_with_no_name
select trunc(END_TIME, 'DD') from KROWA其中 KROWA 是WITHclouse 的别名。当我用trunc()替换to_date()时,我得到date format picture ends before converting entire input string -
@adakozu - 你在传递日期或字符串时感到困惑。您的问题显示您从字符串开始并将其转换为日期 - 时间在午夜 - 这使得
trunc()毫无意义。如果您真的从日期变量/列开始,那么 trunc 更有意义(但使用 DD 而不是 DAY);但不要将已经是日期的内容传递给to_date()。那是不是所建议的。我们只能继续您告诉我们您正在做的事情 - 如果您提供的建议与您真正正在做的事情有很大不同,我们不能责怪我们...... -
@AlexPoole 我感谢所有的建议。以后我会保持我的陈述更清晰。