Sql 日期在Oracle中显示不正确
我有一个字符字段,按Sql 日期在Oracle中显示不正确,sql,oracle10g,Sql,Oracle10g,我有一个字符字段,按MMDDYYHHMMSS的顺序标记(注意:不是日期,而是字符字段)。我想将它踢出到我的SQL中的日期字段,转换成这种格式dd.mm.yyyy。hh24:mi 我的问题是sql将其踢出到YYYY-MM-DD字段,而没有时间。sql语句的这一部分如下所示: TO_DATE(SUBSTR(MOPACTIVITY.MOPID,3,2)||'.'||SUBSTR(MOPACTIVITY.MOPID,1,2) ||'.'||'20'||SUBSTR(MOPACTIVITY
MMDDYYHHMMSS
的顺序标记(注意:不是日期,而是字符字段)。我想将它踢出到我的SQL中的日期字段,转换成这种格式dd.mm.yyyy。hh24:mi
我的问题是sql将其踢出到YYYY-MM-DD字段,而没有时间。sql语句的这一部分如下所示:
TO_DATE(SUBSTR(MOPACTIVITY.MOPID,3,2)||'.'||SUBSTR(MOPACTIVITY.MOPID,1,2)
||'.'||'20'||SUBSTR(MOPACTIVITY.MOPID,5,2)||'.'||SUBSTR(MOPACTIVITY.MOPID,7,2)
||':'||SUBSTR(MOPACTIVITY.MOPID,9,2)||':'||SUBSTR(MOPACTIVITY.MOPID,11,2)
, 'dd.mm.yyyy. hh24:mi:ss') "XXX",
关于如何获得转换时间有什么想法吗?不需要这么复杂的表达式:
to_date(MOPID, 'MMDDYYHH24MISS')
假设时间部分为24小时格式(00-23,而非00-12),则将该列转换为实际的日期列。如果varchar列中没有有效的日期,这也会失败
这会将我的SQL中的日期字段转换为此格式
DATE
列没有格式!
该格式仅在显示时应用
如果您想将存储在列中的varchar转换为另一个具有不同日期格式的varchar,最简单的方法可能是将上述表达式转换回varchar:
to_char(to_date(MOPID, 'MMDDYYHH24MISS'), 'dd.mm.yyyy. hh24:mi')
在应用类似内容之前,请允许我发表一点意见:
将日期存储在DATE
列中,切勿将其存储在VARCHAR
列中。
如果您从一开始就这样做了,那么您只需将一个to_char()
应用到DATE
列即可获得所需的显示格式。无需如此复杂的表达式:
to_date(MOPID, 'MMDDYYHH24MISS')
假设时间部分为24小时格式(00-23,而非00-12),则将该列转换为实际的日期列。如果varchar列中没有有效的日期,这也会失败
这会将我的SQL中的日期字段转换为此格式
DATE
列没有格式!
该格式仅在显示时应用
如果您想将存储在列中的varchar转换为另一个具有不同日期格式的varchar,最简单的方法可能是将上述表达式转换回varchar:
to_char(to_date(MOPID, 'MMDDYYHH24MISS'), 'dd.mm.yyyy. hh24:mi')
在应用类似内容之前,请允许我发表一点意见:
将日期存储在DATE
列中,切勿将其存储在VARCHAR
列中。
如果您从一开始就这样做了,那么您只需在日期
列上应用一个to_char()
,就可以得到您想要的显示格式。可能的重复我有一个全面的例子来说明发生了什么,尽管我相信还有很多。。。简单的答案是to_char(to_date(,'mmddyyyyhmmss'),'DD.MM.YYYY.HH24:mi')
我有一个全面的例子来说明发生了什么,尽管我相信还有很多。。。简单的答案是to_char(to_date(,'mmddyyyhhmmss'),'DD.MM.YYYY.HH24:mi')