[20111229]date time timestamp? ansi liternals.txt

今天看一篇文章,发现日期可以写成这样
date '2011-1-1'

google发现如下链接:
http://laurentschneider.com/wordpress/2005/11/ansi-literals.html

自己测试一下,一般我个人喜欢定义环境变量如下:

$ export | grep NLS
declare -x NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
declare -x NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
declare -x NLS_TIMESTAMP_FORMAT="YYYY-MM-DD HH24:MI:SS.FF"
declare -x NLS_TIMESTAMP_TZ_FORMAT="YYYY-MM-DD HH24:MI:SS.FF"
declare -x NLS_TIME_FORMAT="HH24:MI:SS.FF"

select date '2012-1-2' from dual;
DATE'2012-1-2'
-------------------
2012-01-02 00:00:00

并且如果写成

SQL> select date '2012/1/2' from dual;
            *
ERROR at line 1:
ORA-01861: literal does not match format string

感觉根本不使用/分割.并且date 不能使用时分秒。

SQL> select date '2012-1-2 15:12:39'  from dual;
select date '2012-1-2 15:12:39'  from dual
            *
ERROR at line 1:
ORA-01861: literal does not match format string

还有其他的如time,timestamp.

SQL> select time '12:23:21' ,timestamp '2012-1-1 12:23:34'from dual;

TIME'12:23:21'         TIMESTAMP'2012-1-112:23:34'   
---------------------- ------------------------------
12:23:21.000000000     2012-01-01 12:23:34.000000000

不允许两者相加,例子:

SQL> select date '2012-1-1' + time '12:23:21' from dual;
select date '2012-1-1' + time '12:23:21' from dual
                       *
ERROR at line 1:
ORA-30087: Adding two datetime values is not allowed

可以这样相加,例子:
SQL> select date '2012-1-2'+ interval '15' hour from dual ;
SQL> select date '2012-1-2'+ to_dsinterval('0 2:0:0') from dual;
SQL> select date '2012-1-2'+ 1/24 + 15/1440 + 40/86400 from dual;

DATE'2012-1-2'+1/24
-------------------
2012-01-02 01:15:40

时间: 2024-07-30 10:52:31

[20111229]date time timestamp? ansi liternals.txt的相关文章

ORACLE DATE和TIMESTAMP数据类型的比较(二)

oracle|比较|数据|数据类型 原著作者:James Koopmann TIMESTAMP数据的格式化显示和DATE 数据一样.注意,to_char函数支持date和timestamp,但是trunc却不支持TIMESTAMP数据类型.这已经清楚表明了在当两个时间的差别极度重要的情况下,使用TIMESTAMP数据类型要比DATE数据类型更确切. 如果你想显示TIMESTAMP的小数秒信息,参考下面: 1  SELECT TO_CHAR(time1,'MM/DD/YYYY HH24:MI:SS

在Java中String和Date、Timestamp之间的转换_java

一.String与Date(java.util.Date)互转      1.1 String -> Date String dateStr = "// ::"; Date date = new Date(); //注意format的格式要与日期String的格式相匹配 DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); try { date = sdf.parse(dateStr); S

[20160213]关于ansi语法.txt

[20160213]关于ansi语法.txt --曾经写过几篇关于ansi语法的blog,参考链接: [20120410]使用ANSI join syntax好吗?.txt http://blog.itpub.net/267265/viewspace-720875/ [20150423]left right join.txt http://blog.itpub.net/267265/viewspace-1593068/ --我以前并不是学习计算机,我一开始学习连接就非常不习惯写left join

[20111229]Consistent gets from cache (fastpath).txt

[20111229]Consistent gets from cache (fastpath).txt SQL> select * from v$version ;BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionPL/SQL

ORACLE DATE和TIMESTAMP数据类型的比较(一)

oracle|比较|数据|数据类型 原著作者:James Koopmann 如果你想在ORACLE中存储DATE和时间信息的话,实际上你由两种字段数据类型的选择的话,就让我们看看这两种数据类型的差别和它们提供了些什么.         DATE数据类型 这个数据类型我们实在是太熟悉了,当我们需要表示日期和时间的话都会想到date类型.它可以存储月,年,日,世纪,时,分和秒.它典型地用来表示什么时候事情已经发生或将要发生.DATE数据类型的问题在于它表示两个事件发生时间间隔的度量粒度是秒.这个问题

MySQL的Date,DateTime,TimeStamp和Time数据类型

DATETIME类型用在你需要同时包含日期和时间信息的值时.MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'.("支持"意味着尽管更早的值可能工作,但不能保证他们可以.) DATE类型用在 你仅需要日期值时,没有时间部分.MySQL检索并且以'YYYY-MM-DD'格式显示DATE值,支持的范围是 '1000-01-01'到'9999-12-31'

Date、String、Timestamp之间的转换

1 public static void main(String[] args) { 2 // TODO Auto-generated method stub 3 DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 4 Date date = null; 5 String str = null; 6 7 // String转Date 8 str = "2009-01-06"; 9 try { 10 date

java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和总结

java.util.Date.java.sql.Date.java.sql.Time.java.sql.Timestamp区别和总结   java.lang.Object  ....|__java.util.Date  ..........|__java.sql.Date/java.sql.Timestamp /java.sql.Time [父类]java.util.Date日期格式为:年月日时分秒  [子类]java.sql.Date日期格式为:年月日[只存储日期数据不存储时间数据]  [子类

TIMESTAMP列类型详解(怎样设列的默认值为Now())

详解 TIMESTAMP列类型详解(怎样设列的默认值为Now()) MySQL目前不支持列的Default 为函数的形式,如达到你某列的默认值为当前更新日期与时间的功能,你可以使用TIMESTAMP列类型下面就详细说明TIMESTAMP列类型 TIMESTAMP列类型TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示.TIMESTAMP值显示尺寸的格式如下表所示::+---------------+----------------+| 列类型