如何使用C#从ASP.Net中的数据库获取最新记录?

时间:2013-10-03 09:20:32

标签: c# asp.net sql

我想从数据库

获取最新记录

以下是我的查询

select * from tablename order by date desc, time desc

我的问题 我的查询显示不确定的行为,有时它在网站上正常工作,但有时不会给出所需的结果。这是因为时间部分

示例

下午2:00和凌晨2:00如何比较这个时间?

6 个答案:

答案 0 :(得分:3)

确切的查询是获取最新的行

 select Top 1 * from tablename order by date desc, time desc

答案 1 :(得分:2)

试试这个。将日期和时间转换为日期时间,然后按顺序排序。

select * 
from tablename 
order by cast(date AS DATETIME) + cast(time AS DATETIME)

答案 2 :(得分:2)

所以,如果你的数据类型真的是VARCHAR,你可以按顺序将它转换为日期和时间

begin
declare @time1 time
declare @time2 time

declare @test table(
    mytime varchar(max),
    mydate varchar(max)
)

insert into @test VALUES('2:00 pm', '10-10-2010')
insert into @test VALUES('2:00 am', '08-05-2009')

SELECT * FROM @test ORDER BY CONVERT(date, mydate) DESC, CONVERT(time,  mytime) DESC

end

但我建议改变你的表结构,只有一个DateTime列! 或者至少将DataType更改为TIME和DATE!

答案 3 :(得分:2)

除非您有特殊要求,否则最好只使用datetime类型的一列来存储日期和时间。

如果必须使用两列,则可以24小时格式存储时间。

答案 4 :(得分:2)

 Select Top 1 ColumnName from dbo.TableName Order by date,time desc

答案 5 :(得分:0)

我认为您应该将AM / PM的时间转换为24小时格式。看看http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format