如何将日期值插入表中

Posted

技术标签:

【中文标题】如何将日期值插入表中【英文标题】:How to insert date values into table 【发布时间】:2016-03-23 15:24:13 【问题描述】:

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

insert into run(id,name,dob)values(&id,'&name',[what should I write here?]);

我正在使用 oracle 10g。

【问题讨论】:

您能否发布一些您希望插入的输入示例以进行更多说明? 身份证姓名出生日期 1 abc 19.12.2008 2 def 20.12.2009 【参考方案1】:

由于dobDATE 数据类型,您需要使用TO_DATE 和正确的格式模型将literal 转换为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 数据类型同时包含日期和时间元素。如果您不关心时间部分,那么您也可以使用使用固定格式'YYYY-MM-DD' 并且独立于 NLS 的 ANSI 日期文字。

例如,

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

1 row created.

【讨论】:

【参考方案2】:

日期必须插入两个撇号' 例如,如果日期是 2018/10/20。它可以从这些查询中插入

查询 -

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

【讨论】:

不,这是不正确的。在 Oracle 中,'2018-10-20' 是一个字符串,而不是日期。您必须使用带有适当格式掩码的TO_DATE 或使用使用固定格式DATE 'YYYY-MM-DD'ANSI date literal 将字符串显式转换为日期。【参考方案3】:

假设我们使用 SQl 服务器管理工​​作室创建一个表 Transactions

txn_id int,

txn_type_id varchar(200),

Account_id int,

Amount int,

tDate date

);

使用 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 

【讨论】:

【参考方案4】:

插入run(id,name,dob)values(&id,'&name',[我应该写什么 在这里?]);

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

【讨论】:

【参考方案5】:

你也可以在只需要“dd-mm-yyyy”的地方使用“timestamp”数据类型

喜欢:

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

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

【讨论】:

【参考方案6】:

我只是编写了一个嵌入式 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');    

【讨论】:

以上是关于如何将日期值插入表中的主要内容,如果未能解决你的问题,请参考以下文章

将预定的日期时间值插入 SQL 表

将日期值插入 MS 访问

插入触发器 SQL。插入新表后如何从另一个表中检索值

将列值转换为日期时间以插入 AccessDB

如何将当前日期和时间插入到具有 DateTime 类型列的 SQL Server 表中?

TSQL - 如何在插入之前根据不同列中的值检查值?