使用查询将Date转换为Long

时间:2014-03-15 12:02:06

标签: mysql sql sql-server oracle oracle11g

我有一个名为用户的表,其中包含DataType DATETIME的 activityDate 列。

现在我已将 activityDate 列的数据类型从DateTime更改为Long。

所以插入了带有长值的新值。

如何转换表的现有数据而不将其先前值更改为

长期使用MySql,SQL SERVER和ORACLE的查询。

我没有发现要更改的查询。

因此,请指导我如何实现这一目标。

1 个答案:

答案 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