我是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'
?
答案 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