我创建了这样的表,
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类型?
答案 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 Reference,Postgres 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
列都会包含服务器的日期和时间。