Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 日期在Oracle中显示不正确_Sql_Oracle10g - Fatal编程技术网

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')