我有一个名为用户的表,其中包含DataType DATETIME的 activityDate 列。
现在我已将 activityDate 列的数据类型从DateTime更改为Long。
所以插入了带有长值的新值。
如何转换表的现有数据而不将其先前值更改为
长期使用MySql,SQL SERVER和ORACLE的查询。
我没有发现要更改的查询。
因此,请指导我如何实现这一目标。
答案 0 :(得分:0)
如果您使用的是SQL Server 2012,则可以使用FORMAT
转换为您想要的任何内容
DECLARE @date DATETIME = '03/15/2014 16:35:44'
SELECT @date AS DateTimeColumn
,CONVERT(DECIMAL(19, 0), FORMAT(@date, 'yyyyMMddHHMMss')) AS DecimalColumn
在示例中,我使用FORMAT
去除显示日期时间的数字部分,然后将其转换为十进制。
对于SQL Server 2008 R2及之前的版本。你可以使用
DECLARE @date DATETIME = '03/15/2014 16:35:44'
SELECT @date AS DateTimeColumn
,CONVERT(DECIMAL(19, 0), REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(20), @date, 120), '-', ''), ' ', ''),':', '')) AS DecimalFromVarchar
首先使用您想要的特定样式转换为varchar,然后只删除非数字字符,然后转换为十进制。
FORMAT
- syntax here
CONVERT
- syntax here