我正在尝试将日期时间字段中的时间更新为
UPDATE table_name
SET col_name=to_DATE('04/02/2012 00:12:00','MM/DD/YYYY HH24:MI:SS')
WHERE col_name1='rer';
在db中更新后,output
是这样的
'04/02/2012 12:12:00'
额外12
添加在小时字段中,
我怎样才能使它不添加额外12
的小时字段???
我正在尝试将日期时间字段中的时间更新为
UPDATE table_name
SET col_name=to_DATE('04/02/2012 00:12:00','MM/DD/YYYY HH24:MI:SS')
WHERE col_name1='rer';
在db中更新后,output
是这样的
'04/02/2012 12:12:00'
额外12
添加在小时字段中,
我怎样才能使它不添加额外12
的小时字段???
UPDATE 语句没问题。它不会在您的日期列中添加任何“额外的 12”。您遇到的唯一问题是显示值。日期列不以任何特定格式存储其值,例如“MM/DD/YYYY HH24:MI:SS”,它包含二进制数据。当你用这样的语句查询你的表时
SELECT col_name FROM table_name
日期使用会话的 NLS_DATE_FORMAT 显示,可能是“MM/DD/YYYY HH:MI:SS”。在这种格式中,您的日期显示为“04/02/2012 12:12:00”。如果您在会话中运行以下语句
ALTER SESSION SET NLS_DATE_FORMAT='MM/DD/YYYY HH24:MI:SS';
然后你的查询
SELECT col_name FROM table_name
您将看到所需格式的日期。其他方法是使用 TO_CHAR 之类的
SELECT TO_CHAR(col_name, ''MM/DD/YYYY HH24:MI:SS') FROM table_name
只是猜测,用于格式化输出的字符串中可能存在错误,“HH24”中缺少“24”。由于您只有上面列出的输入(而不是输出)的格式字符串,我不能说是否是这种情况。这是我的意思的一个例子。
查询一:
select to_char(to_date('04/02/2012 00:12:00','MM/DD/YYYY HH24:MI:SS'),
'mm/dd/yyyy HH24:mi:ss') from dual;
结果1:
04/02/2012 00:12:00
查询 2:
select to_char(to_date('04/02/2012 00:12:00','MM/DD/YYYY HH24:MI:SS'),
'mm/dd/yyyy HH:mi:ss') from dual;
结果 2:
04/02/2012 12:12:00
需要明确的是,我认为您的问题的解决方案可能是检查您的选择语句中的格式,并选择您的数据,如下所示:
SELECT to_char(col_name,'MM/DD/YYYY HH24:MI:SS') FROM table_name WHERE col_name1='rer';