sql 整型数字怎么转换成时间格式
sql 整型数字如何转换成时间格式
我sql server数据库中原始数据是bigint(20)类型的数字, 比如:
time product_num
20140711201734 45
20140711211153 36
20140712032254 10
. ...
由于我要统计近两千多条数据, 每周的product_num的总和. 但是目前的time其实不是date能认识的时间格式. 请教大神这个sql语句改怎么写? 在线等大神, 提前感谢!
------解决思路----------------------
WITH cet as (
SELECT '20140711201734' AS d, 45 AS num UNION ALL
SELECT '20140711211153' ,35
)
select getdate(),d,substring(convert(char(14), d),1,4)+'.'+substring(convert(char(14), d),5,2)+'.'+
substring(convert(char(14), d),7,2)+' '+substring(convert(char(14), d),9,2)+':'+substring(convert(char(14), d),11,2)+
':'+substring(convert(char(14), d),13,2) from cet
------解决思路----------------------
------解决思路----------------------
我sql server数据库中原始数据是bigint(20)类型的数字, 比如:
time product_num
20140711201734 45
20140711211153 36
20140712032254 10
. ...
由于我要统计近两千多条数据, 每周的product_num的总和. 但是目前的time其实不是date能认识的时间格式. 请教大神这个sql语句改怎么写? 在线等大神, 提前感谢!
------解决思路----------------------
WITH cet as (
SELECT '20140711201734' AS d, 45 AS num UNION ALL
SELECT '20140711211153' ,35
)
select getdate(),d,substring(convert(char(14), d),1,4)+'.'+substring(convert(char(14), d),5,2)+'.'+
substring(convert(char(14), d),7,2)+' '+substring(convert(char(14), d),9,2)+':'+substring(convert(char(14), d),11,2)+
':'+substring(convert(char(14), d),13,2) from cet
------解决思路----------------------
;with cte as
(
select DATEPART(week, CONVERT(date, convert(nvarchar(8),
CAST([time] as nvarchar), 112))) as wk, product_num
from tbl
where ...... -- 条件
)
select wk, sum(product_num) as snum from cte
group by wk
------解决思路----------------------
SET DATEFIRST 7
;WITH /* 测试数据
table1(me,product_num)AS(
SELECT CONVERT(bigint,20140711201734),45 UNION ALL
SELECT 20140711211153,36 UNION ALL
SELECT 20140712032254,10
),*/
a AS (
SELECT CONVERT(datetime,
LEFT(CONVERT(varchar(14),me),8),
120) dt,
product_num
FROM table1
)
SELECT DATEPART(week,dt) week,
SUM(product_num) product_num
FROM a
GROUP BY DATEPART(week,dt)
week product_num
----------- -----------
28 91