首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一日期转换有关问题

2013-12-21 
求一日期转换问题本帖最后由 lazygc520 于 2013-12-20 09:07:17 编辑SELECT DATE_FORMAT(date,%Y-%m-%d %

求一日期转换问题
本帖最后由 lazygc520 于 2013-12-20 09:07:17 编辑


SELECT DATE_FORMAT(date,'%Y-%m-%d %H') as times,type,count(*) as count FROM 
(select * from barcode_2d WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00' union all 
select * from barcode_2d_n WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00' union all 
select * from barcode_2d_temp WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00' 
union all select * from barcode_2d_sep_temp WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00' union all select id,username,packageno,lotno,description,[type],barcode,date from barcode_2d_qr_temp WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00' 
union all 
select id,username,packageno,lotno,description,[type],barcode,date from barcode_2d_qr WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00' 
union all 
select id,username,packageno,lotno,description,[type],barcode,date from barcode_2d_sep WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00')a GROUP BY type , times ORDER BY times ASC


其中字段date的格式是yyyy-mm-dd hh:i:s的形式,DATE_FORMAT()函数是mysql的时间函数,现在求sqlserver的相同效果?
[解决办法]

Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM 
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06 
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06 
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06 
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06 
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06 
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46 
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM 
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06 
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16 
Select CONVERT(varchar(100), GETDATE(), 12): 060516 
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937 
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967 
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47 
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157 
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM 
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16 
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47 
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250 
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM 
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006 
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16 
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006 
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006 
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006 
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006 
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006 
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49 
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM 
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006 
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16 
Select CONVERT(varchar(100), GETDATE(), 112): 20060516 


Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513 
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547 
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49 
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700 
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827 
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM 
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM


[解决办法]
可以看看我的博客http://blog.csdn.net/dba_huangzj/article/details/7657979
[解决办法]
SELECT convert(varchar(50),GETDATE(),23)+' '+left(CONVERT(VARCHAR(50),GETDATE(),24),2)
--------------------------------------------------------
2013-12-20 09

[解决办法]
呵呵,没看清,修改一下:

用这个:

convert(varchar(13),date,120)

替换你的:

DATE_FORMAT(date,'%Y-%m-%d %H')

也就是:


SELECT convert(varchar(13),date,120) as times,type,count(*) as count FROM 
(select * from barcode_2d WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00' union all 
select * from barcode_2d_n WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00' union all 
select * from barcode_2d_temp WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00' 
union all select * from barcode_2d_sep_temp WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00' union all select id,username,packageno,lotno,description,[type],barcode,date from barcode_2d_qr_temp WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00' 
union all 
select id,username,packageno,lotno,description,[type],barcode,date from barcode_2d_qr WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00' 
union all 
select id,username,packageno,lotno,description,[type],barcode,date from barcode_2d_sep WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00')a GROUP BY type , times ORDER BY times ASC

[解决办法]
引用:
Quote: 引用:

用这个:

convert(varchar(30),date,120)

替换你的:

DATE_FORMAT(date,'%Y-%m-%d %H')


Invalid column name 'times'.
//DATE_FORMAT(date,'%Y-%m-%d %H') as times

sql server不能用别名吗?


是由于你的后面,用了group by times了,但这个times是上面转化后算出来的,所以才报错的,改成这样应该就行了:

SELECT convert(varchar(13),date,120) as times,type,count(*) as count FROM 
(select * from barcode_2d WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00' union all 
select * from barcode_2d_n WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00' union all 
select * from barcode_2d_temp WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00' 
union all select * from barcode_2d_sep_temp WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00' union all select id,username,packageno,lotno,description,[type],barcode,date from barcode_2d_qr_temp WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00' 
union all 
select id,username,packageno,lotno,description,[type],barcode,date from barcode_2d_qr WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00' 
union all 
select id,username,packageno,lotno,description,[type],barcode,date from barcode_2d_sep WHERE date >= '2013-12-19 08:00:00' AND date < '2013-12-20 08:00:00')a GROUP BY type , convert(varchar(13),date,120) ORDER BY times ASC

热点排行