在MS SQL Server中,如何从数据查询中创建新列,例如说我有一个带有UNIX时间戳的表 -
timestamp | value
------------------
1468073257 | 15
1468073589 | 22
以下查询输出每个时间戳的SQL日期对象
Select
dateadd(S, [timestamp], '1970-01-01')
From myTable
我如何使用上面的查询来修改表格,如下所示:
timestamp | datetime | value
----------------------------------------------
1468073257 | 2016-07-09 14:07:37.000 | 15
1468073589 | 2016-07-09 18:12:56.000 | 22
我想它有点像SELECT... INTO
但在表格中
答案 0 :(得分:0)
您的表可能正由现有应用程序填充,架构更改可能会破坏这些应用程序。
一种解决方案是制作VIEW
。
CREATE VIEW vw_myTable
AS
SELECT timestamp, DATEADD(S, timestamp, '1970-01-01') AS datetime, value
FROM myTable
查询视图。
SELECT *
FROM vw_myTable
答案 1 :(得分:0)
如果表存在,则可以使用INSERT INTO和SELECT语句。 例如:
INSERT INTO <your_table_name>(timestamp, datetime, value)
SELECT
timestamp AS [timestamp],
dateadd(S, [timestamp], '1970-01-01') AS datetime,
value AS [value]
From myTabl
如果您没有桌子但想要创建新桌面,那么您可以使用SELECT ... INTO
例如:
SELECT
timestamp AS [timestamp],
dateadd(S, [timestamp], '1970-01-01') AS datetime,
value AS [value]
INTO <your_new_table>
FROM myTabl
答案 2 :(得分:0)
由于您没有添加任何新数据(仅导出/格式化数据),我认为最好添加计算列。
ALTER TABLE [YourTableName]
ADD [FormattedDateColumnName] AS DATEADD(SECOND,[timestamp],'1/1/1970')