如何在“日期”中插入数据类型sql

时间:2018-03-07 05:49:26

标签: sql oracle

我创建了这样的表,

create table customer
(
   customer_id number(3),
   customer_name varchar(20),
   phone varchar(15)
);

create table manager
(
   customer_id number(3),
   ordered_products number(4),
   transaction_on DATE
);

现在我将如何在manager表格中插入数据?如何插入DATE类型?

5 个答案:

答案 0 :(得分:2)

这个问题的答案实际上取决于你正在使用的sql的类型。

通常,如果日期时间以ISO格式(yyyymmdd)存在,则任何sql引擎在解析它时都不应该遇到任何问题。自定义日期格式对于单个SQL客户端来说是棘手且具体的,但是这里有一些广泛的类型可以帮助您入门:

<强>的Oracle / PostgreSQL的

INSERT INTO manager
(
    transaction_on
)
SELECT TO_DATE('23-01-2018', 'dd-mm-yyyy')
FROM DUAL;

这将允许您解析任何日期格式,只要您可以在以下字符串中指定日期格式。我提供的值只是示例,您可以根据具体用例使用它们。 Oracle ReferencePostgres Reference

SQL Server

INSERT INTO manager
(
    transaction_on
)
SELECT CONVERT(DATE, '02-25-2018', 101);

这里101是来自pre-specified list的样式指示器,它支持多种日期格式。您可以根据特定的输入字符串格式选择样式指示器

<强>的MySQL

INSERT INTO manager
(
    transaction_on
)
SELECT STR_TO_DATE('May 1, 2013','%M %d,%Y');    

这与Postgres和Oracle的用法非常相似,只是日期格式的表示略有不同。 My SQL Reference

答案 1 :(得分:0)

您可以通过SQL语句插入:

INSERT INTO manager (customer_id, ordered_products, transaction_on)
VALUES (123, 2, '2018-03-07 05:52:30');

答案 2 :(得分:0)

如果我们知道数据库类型,我们可以提供更准确的答案。 (等MySQL,MSSQL,PosgreSQL,......)

作为一般答案:这可能有用:

 INSERT INTO manager (
    customer_id,
    ordered_products,
    transaction_on) 
 VALUES (
    001,
    5,
    '2000-02-28'
 );

答案 3 :(得分:0)

在MySQL中,如果要插入当前日期

,可以通过两种方式完成

INSERT INTO manager (customer_id, ordered_products, transaction_on) VALUES (NULL, '110', NOW());

或您可以使用的任何日期

INSERT INTO manager (customer_id, ordered_products, transaction_on) VALUES (NULL,'10', '2018-03-07');

答案 4 :(得分:-1)

在SQL Server中,如果希望在事务发生时自动插入日期。

ALTER TABLE manager ADD CONSTRAINT DF_DefaultTranDate DEFAULT GETDATE() FOR  transaction_on

每当在manager表格中插入一行时,transaction_on列都会包含服务器的日期和时间。