SQL排序日期和时间ASC

时间:2016-09-23 15:48:08

标签: sql date datetime

我一直致力于调度应用程序,它有两个字段:日期和时间。

用户从日历中选择日期,用户通过下拉菜单选择时间 数据类型包括:日期时间和时间(7)

我想列出日期和时间ASC。

例如: 我想要实现的目标。

9/1/2016  8:05 AM
9/1/2016  9:00 AM
9/1/2016  10:30 AM
9/1/2016  11:00 AM
9/1/2016  2:00 PM

我收到了什么。

9/1/2016  2:00 PM 
9/1/2016  8:05 AM
9/1/2016  9:00 AM
9/1/2016  10:30 AM
9/1/2016  11:00 AM

我尝试按两列日期排序,时间ASC没有成功。
能够以适当的顺序列出这些的好方法是什么?

3 个答案:

答案 0 :(得分:0)

-- CONVERT TO DATETIME TO GET 24HR FORMAT

SELECT CONVERT(DATETIME, '9/1/2016 8:05 AM', 0)  

-- Concatenate in required format

SELECT CONVERT(VARCHAR(10), CONVERT(DATETIME, '9/1/2016 8:05 AM', 0), 101) 
+ ' '+ CONVERT(VARCHAR(5),CONVERT(DATETIME, '9/1/2016 8:05 AM', 0), 108)

然后根据需要尝试按ASC或DESC订购。

More details here

答案 1 :(得分:0)

我准备了一个满足你要求的例子, 如果需要进行任何更改,请检查并告知我们

declare @tbl as table 
(
dt datetime
,tm time(7)
)

insert into @tbl
select '2001-02-01','12:00:00'

insert into @tbl
select '2001-01-02','13:00:00'

insert into @tbl
select '2001-01-01','15:00:00'


select convert(varchar(10),dt,101)+' '+ right(convert(varchar(25),tm,100),7) from @tbl
order by dt,tm

答案 2 :(得分:0)

如果您使用的是SQL Server,请尝试使用以下查询。

SELECT *
FROM  Yourtable
ORDER BY [date],cast([Time] as time(7))