Sql server 添加列-请改进我的代码
对SQLServer来说,这是一个全新的概念。我试图找到一种方法来轻松地向表中添加新列。它只是获取一个现有的日期列,并给它一个不同的格式。我能让它工作的唯一方法是创建一个新表,然后删除旧表,并重命名新表。。肯定效率很低Sql server 添加列-请改进我的代码,sql-server,date-format,Sql Server,Date Format,对SQLServer来说,这是一个全新的概念。我试图找到一种方法来轻松地向表中添加新列。它只是获取一个现有的日期列,并给它一个不同的格式。我能让它工作的唯一方法是创建一个新表,然后删除旧表,并重命名新表。。肯定效率很低 Use [Manipulate MC BS] select*, CONVERT(date,[Time_stamp], 103) AS [Date Fixed] into [Website Interactions - Raw2] from [Website Interactio
Use [Manipulate MC BS]
select*,
CONVERT(date,[Time_stamp], 103) AS [Date Fixed]
into [Website Interactions - Raw2]
from [Website Interactions - Raw]
drop table [Website Interactions - Raw]
Use [Manipulate MC BS]
Go
sp_RENAME 'Website Interactions - Raw2','Website Interactions - Raw'
Go
如何在不创建新表的情况下执行此操作
谢谢!
卢卡斯,你试过了吗
ALTER TABLE [Website Interactions - Raw]
ADD [Date Fixed] TIMESTAMP
(使用您需要的任何数据类型,我使用时间戳作为示例)
然后你可以做一些类似的事情:
UPDATE [Website Interactions - Raw]
SET [Date Fixed]=CONVERT(date,[Time_stamp], 103)
WHERE 1;
如果要更新所有行,则不需要最后一个,其中1
。
如果只需要更新一些,请设置一个条件:WHERE some\u column=some\u value代码>
是的,这仍然是2个查询,但应该比将一个表复制到另一个表中,然后删除原始表并将新表重命名为旧表更有效
希望这有帮助。你试过了吗
ALTER TABLE [Website Interactions - Raw]
ADD [Date Fixed] TIMESTAMP
(使用您需要的任何数据类型,我使用时间戳作为示例)
然后你可以做一些类似的事情:
UPDATE [Website Interactions - Raw]
SET [Date Fixed]=CONVERT(date,[Time_stamp], 103)
WHERE 1;
如果要更新所有行,则不需要最后一个,其中1
。
如果只需要更新一些,请设置一个条件:WHERE some\u column=some\u value代码>
是的,这仍然是2个查询,但应该比将一个表复制到另一个表中,然后删除原始表并将新表重命名为旧表更有效
希望这有帮助。你试过了吗
ALTER TABLE [Website Interactions - Raw]
ADD [Date Fixed] TIMESTAMP
(使用您需要的任何数据类型,我使用时间戳作为示例)
然后你可以做一些类似的事情:
UPDATE [Website Interactions - Raw]
SET [Date Fixed]=CONVERT(date,[Time_stamp], 103)
WHERE 1;
如果要更新所有行,则不需要最后一个,其中1
。
如果只需要更新一些,请设置一个条件:WHERE some\u column=some\u value代码>
是的,这仍然是2个查询,但应该比将一个表复制到另一个表中,然后删除原始表并将新表重命名为旧表更有效
希望这有帮助。你试过了吗
ALTER TABLE [Website Interactions - Raw]
ADD [Date Fixed] TIMESTAMP
(使用您需要的任何数据类型,我使用时间戳作为示例)
然后你可以做一些类似的事情:
UPDATE [Website Interactions - Raw]
SET [Date Fixed]=CONVERT(date,[Time_stamp], 103)
WHERE 1;
如果要更新所有行,则不需要最后一个,其中1
。
如果只需要更新一些,请设置一个条件:WHERE some\u column=some\u value代码>
是的,这仍然是2个查询,但应该比将一个表复制到另一个表中,然后删除原始表并将新表重命名为旧表更有效
希望这有帮助。将日期时间或日期数据类型保存为字符串(Varchar,Char)数据类型不是一个好的做法
但是,如果你真的想这样做,你可以这样做
ALTER TABLE TABLE_NAME
ADD NewColumn VARCHAR(10) DEFAULT CONVERT(date,GETDATE(), 103)
更新列
UPDATE TABLE_NAME
SET NewColumn = CONVERT(date,GETDATE(), 103)
我的建议
将数据存储在DATE或DATETIME中,如下所示
ALTER TABLE TABLE_NAME
ADD NewColumn DATE DEFAULT GETDATE()
同样,您需要更新表中现有记录的列
删除表并创建一个新表看起来更容易。但是,如果您在表上有任何外键或权限,则可能会遇到问题 将日期时间或日期数据类型保存为字符串(Varchar,Char)数据类型不是一种好的做法
但是,如果你真的想这样做,你可以这样做
ALTER TABLE TABLE_NAME
ADD NewColumn VARCHAR(10) DEFAULT CONVERT(date,GETDATE(), 103)
更新列
UPDATE TABLE_NAME
SET NewColumn = CONVERT(date,GETDATE(), 103)
我的建议
将数据存储在DATE或DATETIME中,如下所示
ALTER TABLE TABLE_NAME
ADD NewColumn DATE DEFAULT GETDATE()
同样,您需要更新表中现有记录的列
删除表并创建一个新表看起来更容易。但是,如果您在表上有任何外键或权限,则可能会遇到问题 将日期时间或日期数据类型保存为字符串(Varchar,Char)数据类型不是一种好的做法
但是,如果你真的想这样做,你可以这样做
ALTER TABLE TABLE_NAME
ADD NewColumn VARCHAR(10) DEFAULT CONVERT(date,GETDATE(), 103)
更新列
UPDATE TABLE_NAME
SET NewColumn = CONVERT(date,GETDATE(), 103)
我的建议
将数据存储在DATE或DATETIME中,如下所示
ALTER TABLE TABLE_NAME
ADD NewColumn DATE DEFAULT GETDATE()
同样,您需要更新表中现有记录的列
删除表并创建一个新表看起来更容易。但是,如果您在表上有任何外键或权限,则可能会遇到问题 将日期时间或日期数据类型保存为字符串(Varchar,Char)数据类型不是一种好的做法
但是,如果你真的想这样做,你可以这样做
ALTER TABLE TABLE_NAME
ADD NewColumn VARCHAR(10) DEFAULT CONVERT(date,GETDATE(), 103)
更新列
UPDATE TABLE_NAME
SET NewColumn = CONVERT(date,GETDATE(), 103)
我的建议
将数据存储在DATE或DATETIME中,如下所示
ALTER TABLE TABLE_NAME
ADD NewColumn DATE DEFAULT GETDATE()
同样,您需要更新表中现有记录的列
删除表并创建一个新表看起来更容易。但是,如果您在表上有任何外键或权限,则可能会遇到问题 我认为您应该添加一个计算列。它们不占用额外的存储空间,但允许您查看结果。该函数是表的“内置”,有点像在表中有一个视图。你可以读到他们
在您的情况下,您将执行以下操作:
ALTER TABLE
ADD COLUMN [Date Fixed] AS CONVERT(date,[Time_stamp], 103);
这很方便。如果您在[时间戳]
中添加新行或更改数据,[固定日期]
的值将自动更改。我认为您应该添加一个计算列。它们不占用额外的存储空间,但允许您查看结果。该函数是表的“内置”,有点像在表中有一个视图。你可以读到他们
在您的情况下,您将执行以下操作:
ALTER TABLE
ADD COLUMN [Date Fixed] AS CONVERT(date,[Time_stamp], 103);
这很方便。如果您在[时间戳]
中添加新行或更改数据,[固定日期]
的值将自动更改。我认为您应该添加一个计算列。它们不占用额外的存储空间,但允许您查看结果。该函数是表的“内置”,有点像在表中有一个视图。你可以读到他们
在您的情况下,您将执行以下操作:
ALTER TABLE
ADD COLUMN [Date Fixed] AS CONVERT(date,[Time_stamp], 103);
这很方便。如果您在[时间戳]
中添加新行或更改数据,[固定日期]
的值将自动更改。我认为您应该