Sql 如何将此特定格式的当前日期正确设置到Oracle DB上的此insert查询中?
我不太喜欢数据库,我必须在Oracledb上实现一个insert this insert查询:Sql 如何将此特定格式的当前日期正确设置到Oracle DB上的此insert查询中?,sql,database,oracle,rdbms,Sql,Database,Oracle,Rdbms,我不太喜欢数据库,我必须在Oracledb上实现一个insert this insert查询: insert into CODA_RX (PK_CODA, FK_TIPO_DOC, FK_PIVA_DESTINATARIO, DATA_IN, FK_STATO, DATA_OUT, CANALE, SIZE_XML, FK_PIVA_MITTENTE) values(70030, 5, 06655971007, '06-MAG-15', 2, '06-MAG-15', 'WEB'
insert into CODA_RX (PK_CODA, FK_TIPO_DOC, FK_PIVA_DESTINATARIO, DATA_IN, FK_STATO, DATA_OUT, CANALE, SIZE_XML, FK_PIVA_MITTENTE)
values(70030, 5, 06655971007, '06-MAG-15', 2, '06-MAG-15', 'WEB', 553, 01392380547);
如您所见,有两个日期字段,分别命名为数据输入和数据输出。在我的查询的上一个版本中,日期值是显式写入的(它是固定的:“06-MAG-15”)
如何使用此特定格式的当前日期'06-MAG-15'(DD-MM-YY)
Tnx您需要使用
to_DATE()
将字符串转换为日期数据类型。例如:
截止日期('2015年5月6日'、'dd-MON-yyyy'、'nls\u日期\语言=英语')
请参阅以了解有关截止日期()的更多信息,可以找到格式掩码列表
相反,如果要以特定格式显示日期数据类型,可以使用带有适当格式掩码的
to_CHAR()
。您需要使用to_DATE()
将字符串转换为日期数据类型。例如:
截止日期('2015年5月6日'、'dd-MON-yyyy'、'nls\u日期\语言=英语')
请参阅以了解有关截止日期()的更多信息,可以找到格式掩码列表
相反,如果要以特定格式显示日期数据类型,可以使用带有适当格式掩码的
to_CHAR()
。'06-MAG-15'
不是日期,而是字符串
- 使用具有适当格式模型的TO_DATE
RR
格式。但是,有些规则你必须知道。我更喜欢YYYY
SQL> SELECT TO_DATE('06-MAY-2015', 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE=ENGLISH') FROM DUAL;
TO_DATE('
---------
06-MAY-15
SQL>
SQL> alter session set nls_date_format='MM/DD/YYYY HH24:MI:SS';
Session altered.
SQL> SELECT SYSDATE FROM DUAL;
SYSDATE
-------------------
05/21/2015 15:15:05
SQL>
如何将此特定格式的当前日期正确设置到Oracle DB上的此insert查询中
这与你在问题中解释的完全不同
记住,日期没有任何格式。您看到的是用于显示的,以便我们能够轻松地解释它。Oracle以专有格式在内部以7字节的格式存储日期
如果要插入当前日期,则不需要任何文字和格式。使用SYSDATE
比如说,
SQL> SELECT TO_DATE('06-MAY-2015', 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE=ENGLISH') FROM DUAL;
TO_DATE('
---------
06-MAY-15
SQL>
SQL> alter session set nls_date_format='MM/DD/YYYY HH24:MI:SS';
Session altered.
SQL> SELECT SYSDATE FROM DUAL;
SYSDATE
-------------------
05/21/2015 15:15:05
SQL>
'06-MAG-15'
不是日期,而是字符串
- 使用具有适当格式模型的TO_DATE将字符串转换为日期
- 此外,最好避免NLS依赖关系
- 另外,对于年份,请避免使用两位数的值。不要重新发明Y2K bug。或者,使用
格式。但是,有些规则你必须知道。我更喜欢RR
YYYY
SQL> SELECT TO_DATE('06-MAY-2015', 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE=ENGLISH') FROM DUAL;
TO_DATE('
---------
06-MAY-15
SQL>
SQL> alter session set nls_date_format='MM/DD/YYYY HH24:MI:SS';
Session altered.
SQL> SELECT SYSDATE FROM DUAL;
SYSDATE
-------------------
05/21/2015 15:15:05
SQL>
如何将此特定格式的当前日期正确设置到Oracle DB上的此insert查询中
这与你在问题中解释的完全不同
记住,日期没有任何格式。您看到的是用于显示的,以便我们能够轻松地解释它。Oracle内部以专有格式存储日期,格式为7 bytes
如果要插入当前日期,则不需要任何文字和格式。使用SYSDATE
比如说,
SQL> SELECT TO_DATE('06-MAY-2015', 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE=ENGLISH') FROM DUAL;
TO_DATE('
---------
06-MAY-15
SQL>
SQL> alter session set nls_date_format='MM/DD/YYYY HH24:MI:SS';
Session altered.
SQL> SELECT SYSDATE FROM DUAL;
SYSDATE
-------------------
05/21/2015 15:15:05
SQL>
数据输入和数据输出是什么数据类型?@Boneist哦,是的,我没有注意到。我将收回我的评论。数据输入和数据输出是什么数据类型?@Boneist哦,是的,我没有注意到。我将收回我的评论。