如何将日期值插入表格中

62

如何使用 / 将不同输入插入具有日期数据类型的表中?

insert into run(id,name,dob)values(&id,'&name',[what should I write here?]);
我正在使用 oracle 10g.


1
你能发布一些你想要插入的输入样本,以便更清楚吗? - Aycan Yaşıt
id 名称 出生日期 1 abc 19.12.2008 2 def 20.12.2009 - AbIr Chanda
7个回答

64

由于dobDATE数据类型,因此您需要使用TO_DATE和正确的格式模型将字面值转换为DATE。 语法如下:

TO_DATE('<date_literal>', '<format_model>')

例如,
SQL> CREATE TABLE t(dob DATE);

Table created.

SQL> INSERT INTO t(dob) VALUES(TO_DATE('17/12/2015', 'DD/MM/YYYY'));

1 row created.

SQL> COMMIT;

Commit complete.

SQL> SELECT * FROM t;

DOB
----------
17/12/2015

DATE 数据类型包含日期和时间元素。如果您不关心时间部分,那么您也可以使用 ANSI 日期字面量,它使用固定格式'YYYY-MM-DD'且与NLS无关。

例如:

SQL> INSERT INTO t(dob) VALUES(DATE '2015-12-17');

1 row created.

14

日期必须用两个撇号插入'

例如,如果日期是2018/10/20。可以使用以下查询插入

查询 -

insert into run(id,name,dob)values(&id,'&name','2018-10-20')

不是的,这是错误的。在 Oracle 中,'2018-10-20' 是一个字符串,而不是日期。您必须使用适当的格式掩码显式地将字符串转换为日期,使用 TO_DATE 或者使用 ANSI date literal,它使用固定格式 DATE 'YYYY-MM-DD' - Lalit Kumar B

4

假设我们使用SQL Server管理工具创建一个名为“Transactions”的表格。

txn_id int,

txn_type_id varchar(200),

Account_id int,

Amount int,

tDate date

);

使用 日期 数据类型,我们可以以简单的格式插入值:'yyyy-mm-dd'

INSERT INTO transactions (txn_id,txn_type_id,Account_id,Amount,tDate)
VALUES (978, 'DBT', 103, 100, '2004-01-22');

此外,我们可以使用不同的时间格式,例如:
DATE - format YYYY-MM-DD
DATETIME - format: YYYY-MM-DD HH:MI:SS
SMALLDATETIME - format: YYYY-MM-DD HH:MI:SS 

1

插入数据到run表中,包括id,name和dob三个字段,值分别为&id,'&name'以及[这里应该写什么?]。

insert into run(id,name,dob)values(&id,'&name',TO_DATE('&dob','YYYY-MM-DD'));

0
我只是写了一个嵌入式SQL程序来写入一个带日期字段的新记录。 这是迄今为止最好、最短且没有任何错误的方法,我能够满足我的需求。

w_dob = %char(%date(*date));      
exec sql insert into Tablename (ID_Number     , 
                             AmendmentNo   , 
                             OverrideDate  , 
                             Operator      , 
                             Text_ID       , 
                             Policy_Company, 
                             Policy_Number , 
                             Override      , 
                             CREATE_USER   ) 
                values ( '801010',    
                            1,            
                           :w_dob,      
                           'MYUSER',     
                            ' ',         
                            '01',        
                            '6535435023150', 
                            '1',         
                            'myuser');    


0

你也可以使用“时间戳”数据类型,只需要“dd-mm-yyyy”格式。

例如:

insert into emp values('12-12-2012');

考虑到表格中只有一列... 您可以根据您的表格调整插入值。


-1

要插入当前日期,您可以使用此GETDATE()函数。

insert into run(id,name,dob) values(&id,'&name',GETDATE());

您还可以使用CURRENT_TIMESTAMP()函数来插入当前日期和时间。


这个答案是针对MS SQL的。起初我没有注意到问题的标签。 - g78

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接