TO_DATE函数的小问题
2008-04-06 10:23
134 查看
今天比较忙,总结一个已经就发现的小问题。使用TO_DATE函数的时候,小心不要被Oracle的“惯性”骗了。
例子很简单:
SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
会话已更改。
SQL> SELECT TO_DATE('2006-05-01 19:25:34', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
TO_DATE('2006-05-01
-------------------
2006-05-01 19:25:34
SQL> SELECT TO_DATE('2006-05-01 19:25', 'YYYY-MM-DD HH24:MI') FROM DUAL;
TO_DATE('2006-05-01
-------------------
2006-05-01 19:25:00
SQL> SELECT TO_DATE('2006-05-01 19', 'YYYY-MM-DD HH24') FROM DUAL;
TO_DATE('2006-05-01
-------------------
2006-05-01 19:00:00
SQL> SELECT TO_DATE('2006-05-01', 'YYYY-MM-DD') FROM DUAL;
TO_DATE('2006-05-01
-------------------
2006-05-01 00:00:00
SQL> SELECT TO_DATE('2006-05', 'YYYY-MM') FROM DUAL;
TO_DATE('2006-05','
-------------------
2006-05-01 00:00:00
SQL> SELECT TO_DATE('2006', 'YYYY') FROM DUAL;
TO_DATE('2006','YYY
-------------------
2006-05-01 00:00:00
当省略HH、MI和SS对应的输入参数时,Oracle使用0作为DEFAULT值。如果输入的日期数据忽略时间部分,Oracle会将时、分、秒部分都置为0,也就是说会取整到日。
同样,忽略了DD参数,Oracle会采用1作为日的默认值,也就是说会取整到月。
但是,不要被这种“惯性”所迷惑,如果忽略MM参数,Oracle并不会取整到年,取整到当前月。
例子很简单:
SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
会话已更改。
SQL> SELECT TO_DATE('2006-05-01 19:25:34', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
TO_DATE('2006-05-01
-------------------
2006-05-01 19:25:34
SQL> SELECT TO_DATE('2006-05-01 19:25', 'YYYY-MM-DD HH24:MI') FROM DUAL;
TO_DATE('2006-05-01
-------------------
2006-05-01 19:25:00
SQL> SELECT TO_DATE('2006-05-01 19', 'YYYY-MM-DD HH24') FROM DUAL;
TO_DATE('2006-05-01
-------------------
2006-05-01 19:00:00
SQL> SELECT TO_DATE('2006-05-01', 'YYYY-MM-DD') FROM DUAL;
TO_DATE('2006-05-01
-------------------
2006-05-01 00:00:00
SQL> SELECT TO_DATE('2006-05', 'YYYY-MM') FROM DUAL;
TO_DATE('2006-05','
-------------------
2006-05-01 00:00:00
SQL> SELECT TO_DATE('2006', 'YYYY') FROM DUAL;
TO_DATE('2006','YYY
-------------------
2006-05-01 00:00:00
当省略HH、MI和SS对应的输入参数时,Oracle使用0作为DEFAULT值。如果输入的日期数据忽略时间部分,Oracle会将时、分、秒部分都置为0,也就是说会取整到日。
同样,忽略了DD参数,Oracle会采用1作为日的默认值,也就是说会取整到月。
但是,不要被这种“惯性”所迷惑,如果忽略MM参数,Oracle并不会取整到年,取整到当前月。
相关文章推荐
- Oracle中to_date函数的问题
- MySql str_to_date函数与%Y-%m-%d%H:%i 问题简记
- TO_DATE函数的小问题
- to_date函数与当前系统时间格式可否隐式转换问题总结
- oracal更新日期问题,to_date函数
- TO_DATE函数的小问题 --碧水云天
- Altium Designer解决failed to add class member及Unknown Pin的问题
- JS报错:Permission denied to access property 'document'---document.domain - JavaScript的同源策略问题
- 问题:Oracle to_date;结果:oracle常用的时间格式转换
- 【python开发】利用PIP3的时候出现的问题Fatal error in launcher: Unable to create process using '"'
- JMeter(一)在mac下安装Jmeter及问题Unable to access jarfile ./ApacheJMeter.jar 解决
- 大数据【关于ssh: connect to host master port 22: Connection timed out问题的总结】
- 解决使用Genymotion下载模拟器时出现 Failed to import OVA file 问题
- 【Unet】Unet Failed to spawn server object, assetId=0000000000000e2656f netId=2 问题
- hibernate 的many to one 的问题IllegalArgumentException occurred while calling setter of hibernatePOJO
- number to string, 转换问题,,,
- Android开发日志3——解决 Android SDK下载和更新失败“Connection to https://dl-ssl.google.com refused”的问题
- 解决TSC appears to be running slowly. Marking it as unstable的问题
- mysql远程连接 Host * is not allowed to connect to this MySQL server问题解决方法