2015-09-02 52 views
2

我想将数据插入到一个表中,从另一个表中选择数据。例如,我这样做:如何在select语句中将表插入到表中

INSERT INTO Customers (CustomerName, Country) 
SELECT SupplierName, Country FROM Suppliers; 

例如,

它的select语句返回,并插入:

Robert USA 
Richard Germany 
Pat  USA 

这工作得很好。

我现在想要做的是填充不属于供应商表的日期转移列。日期将于今日(GETDATE)只是

insert语句应该是:

insert into Customer(CustomerName, Country, datetransfered) 

我怎么会在选择返回的每一行添加“datetransfered”部分为“今天的日期”(GETDATE)声明?

我想它插入:

Robert USA   9/2/15 
Richard Germany  9/2/15 
Pat  USA   9/2/15 

回答

3

只需添加getdate(),并转换为一个日期在你的SELECT语句是这样的:

INSERT INTO Customers (CustomerName, Country,datetransfered) 
SELECT SupplierName, Country,cast(getdate() as date) FROM Suppliers; 

结果:

+--------------+---------+----------------+ 
| CustomerName | Country | datetransfered | 
+--------------+---------+----------------+ 
| Robert  | USA  | 2015-09-02  | 
| Richard  | Germany | 2015-09-02  | 
| Pat   | USA  | 2015-09-02  | 
+--------------+---------+----------------+ 

SQL Server Demo

2

试试这个:

INSERT INTO Customers (CustomerName, Country, datetransfered) 
SELECT SupplierName, Country, getdate() FROM Suppliers; 

getdate()会在你datetransfered列插入今天的日期。

编辑:

如果你想只存储日期部分,那么你需要将它转换为getdate()返回类型为日期时间

INSERT INTO Customers (CustomerName, Country, datetransfered) 
SELECT SupplierName, Country, cast(getdate() as date) FROM Suppliers 

,或者使用Convert()

INSERT INTO Customers (CustomerName, Country, datetransfered) 
SELECT SupplierName, Country, CONVERT(DATE, GETDATE()) FROM Suppliers 
相关问题