Sql 如何将oracle中的日期时间戳转换为日期?
我希望转换(使用Oracle)日期时间戳 [2018-01-25T00:00:00.000+00:00]至日期[2018-01-24]。我尝试了几种格式,但似乎找不到正确的格式来转换它。我不确定如何处理+00:00Sql 如何将oracle中的日期时间戳转换为日期?,sql,database,oracle,datetime,format,Sql,Database,Oracle,Datetime,Format,我希望转换(使用Oracle)日期时间戳 [2018-01-25T00:00:00.000+00:00]至日期[2018-01-24]。我尝试了几种格式,但似乎找不到正确的格式来转换它。我不确定如何处理+00:00 提前感谢这取决于你真正的要求 如果您有一个真正的Oracle时间戳,并且您想要一个格式为'YYYY-MM-DD'的字符串,您可以使用来_char(): 如果您有一个ISO时间戳格式的字符串,并且希望得到一个字符串: select substr(col, 1, 10) as res f
提前感谢这取决于你真正的要求 如果您有一个真正的Oracle
时间戳
,并且您想要一个格式为'YYYY-MM-DD'
的字符串,您可以使用来_char()
:
如果您有一个ISO时间戳格式的字符串,并且希望得到一个字符串:
select substr(col, 1, 10) as res from mytable
如果您有时间戳
列,并且希望将时间部分设置为00:00:00
:
select trunc(col) as res from mytable;
这将返回一个datatype
date
的值,该值尝试了to_char(col,'YYYY-MM-DD'),并引发了一个错误。更具体地说,它说的是“oracle.xdo.XDOException:java.sql.SQLException:ORA-01481:invalid number format model”。使用substr尝试了第二种方法,但结果显示的数据保持不变。我用trunc(col)尝试的第三个也呈现了相同的未更改的输出。@Dale:该列的数据类型是什么?@GMB-Ahh。。知道了。列名上的打字错误。第三个成功了。谢谢对第三个选项的评论是错误的;如果您使用的是TRUNC
,而不是时间戳
数据类型。仍然适用于我,但我非常感谢您的更正。
select trunc(col) as res from mytable;