在getdate()上创建包含字符串的表

时间:2017-08-13 15:39:39

标签: sql sql-server string getdate

我想创建一个表,一旦添加一个条目就会自动生成一个运行日期。

CREATE TABLE ProjectDate (
Year varchar(10)
,TotalOrders varchar(15)
,RunDate date NOT NULL DEFAULT GETDATE())

我应该在上面的语句中修改什么来添加像" Project Run On" +运行日期GETDATE()以上?

这是我想要的结果:

Year    TotalOrders RunDate
2005    1379    Project Run On 8/13/2017
2006    3692    Project Run On 8/13/2017
2007    12443   Project Run On 8/13/2017
2008    13951   Project Run On 8/13/2017

2 个答案:

答案 0 :(得分:2)

您可以将函数调用作为默认值,这样就可以了:

CREATE TABLE ProjectDate (
    Year varchar(10),
    TotalOrders varchar(15),
    RunDate varchar(255) NOT NULL DEFAULT CONCAT('Project Run On ', CONVERT(VARCHAR(10), GETDATE(), 121))
);

注意:我更喜欢ISO标准格式YYYY-MM-DD。

这是Rextester

答案 1 :(得分:2)

为什么要将污染 USEFUL 日期值转换为无意义/冗余字符串?

这确实属于表示层。它在查询中没有意义:

示例

Select *
      ,Msg = Format(RunDate,'Projec\t Run On M/dd/yyyy')
 From ProjectDate
 Where DatePart(YEAR,RunDate)=2017