SQL oracle初学者问题
问题1: 插入日期时,我是否必须使用to_dateSQL oracle初学者问题,sql,oracle,Sql,Oracle,问题1: 插入日期时,我是否必须使用to_date INSERT INTO some_table (date1, date2) VALUES (to_date('2012-10-24','YYYY-MM-DD'), to_date('2012-10-24','YYYY-MM-DD')); 或者可以作为字符串插入?这样一切都好吗?我试过了,它成功了 INSERT INTO some_table (date1, date2) VALUES ('2012-10-24',2
INSERT INTO some_table (date1, date2)
VALUES (to_date('2012-10-24','YYYY-MM-DD'), to_date('2012-10-24','YYYY-MM-DD'));
或者可以作为字符串插入?这样一切都好吗?我试过了,它成功了
INSERT INTO some_table (date1, date2)
VALUES ('2012-10-24',2012-10-24');
问题2:
如果我不命名要插入的列,会发生什么?它可以工作,但我的问题是,它现在是随机插入还是在创建表的过程中按列顺序插入
INSERT INTO some_table
VALUES ('2012-10-24',2012-10-24');
Oracle支持标准SQL日期文字(从9i开始) 它是日期,后跟格式为yyyy-mm-dd的字符串
DATE '2014-05-10'
它比最新版本短得多,并且独立于任何NLS设置
与时间戳类似:
TIMESTAMP '2014-05-10 09:52:35'
关于第二个问题:这是创建表中定义的列顺序。1似乎只适用于“YYYY-MM-DD”格式: 说 您可以将日期值指定为字符串文字。。。要将日期值指定为文字,必须使用公历。您可以指定一个ANSI文本。。。ANSI日期文字不包含时间部分,必须以“YYYY-MM-DD”格式指定 但是,如果您使用 或者,您可以指定Oracle日期值。。。Oracle日期值的默认日期格式由初始化参数NLS_date_format指定
对于问题2,它使用表定义处的顺序。但是,在这种情况下,您必须为所有列指定值。您甚至可以这样做:
ALTER SESSION SET NLS_DATE_FORMAT = 'MM:YYYY:DD';
INSERT INTO some_table (date1) VALUES ('05:2014:10');
…但不建议这样做。使用日期或日期文字,例如日期“2014-05-10”。这让你的生活更轻松。但他们在我们学校学到了很多老东西。。。所以他们强迫我们使用to_date和oracle:10g,但感谢您提供的一些新信息:)但您仍然没有回答问题,可以吗?:我可以像varchar认为它的类型是DATE一样插入它吗?然后我可以使用它上面的所有日期函数吗?好吧,Oracle 9i是在2000年发布的:-)它们是否也教解码而不是大小写,以及旧的连接语法而不是连接?甚至Oracle也在旧的专有数据库上推广新的标准SQL语法。是的,他们教解码,但也教案例,解码有那么旧/坏吗
什么是旧的联接语法?他们教我们“join on”和“join using”,但也教我们加入trought“where a.id=b.id”,以便更好地理解我猜Decode只是旧的专有语法,类似于简单的“value CASE”。希望他们不会使用
(+)
而不是左/右连接来教授旧的外部连接语法,您只需要在阅读几年前编写的一些查询时了解它,但对于初学者来说,这只是让IMHO感到困惑。