如何使用ASC订单按时间获取记录?

时间:2018-03-26 12:07:11

标签: c# sorting datetime ms-access

我是C#WinApp的新手,我正在努力。在Winform中,我想从MS Access数据库获取数据到DataGridView。我写了一个查询,用于获取以时间升序登录的员工记录,但是没有按正确的顺序显示。

首先让我告诉你我正在使用的参数。 表字段是MS Access中的日期/时间,格式为中等时间。时间在现场记录为' 09:15 AM'。日期和时间在不同的领域。 查询是......

"Select EmpName, EmpDesig, EmpTime from LogReg Where TheDate=' "+DateTime.Today.To.ShortDateString()+" ' Order By EmpTime ASC

时间字段中的输出结果按升序显示时间但显示为'30/12/1899 05:30:00'我只想将其显示为"05:30 PM"。在数据表格中,时间仅保存为"05:30 PM",然后才会显示为'30/12/1899 05:30:00'

2 个答案:

答案 0 :(得分:0)

存储和使用日期作为日期值,而不是字符串:

"Select EmpName, EmpDesig, EmpTime from LogReg Where TheDate = #"+ DateTime.Today.ToString("yyyy'/'MM'/'dd") + "# Order By EmpTime ASC"

或者,为什么不在今天的日期使用内部函数:

"Select EmpName, EmpDesig, EmpTime from LogReg Where TheDate = Date() Order By EmpTime ASC"

答案 1 :(得分:0)

如果您还没有将检索到的值存储在日期时间变量中。 然后,您可以格式化您想要显示它的方式。以下将显示您想要的格式。

DateTime dateValue = Convert.ToDateTime(someValuefromDB);
dateValue.ToString("hh:mm tt")

从查询中你可以实现同样的目标

select CONVERT(varchar(15),CAST(YourColumn AS TIME),100) from YourTable