访问日期时间转换为字符串。时间存储为军事,不想转换

时间:2016-06-13 19:42:29

标签: sql ms-access

我正在为MS Access编写SQL查询。

这两个字段是DateTime。开始/结束时间是22:30/6:30

当我运行以下查询时

SELECT cDate(Format(table1.BeginTime,"hh:mm")),

我得到晚上10:30而不是22:30。我不想转换为12小时格式。如何保留Miliary时间格式?

3 个答案:

答案 0 :(得分:2)

所以我在Access 2013中尝试了一些东西,似乎@Bjones有一点意义。

在SQL Server Format中是一个clr .net函数,format(date, 'hh:mm')将是12小时,Format(date, 'HH:mm')将是24小时。

但正如@Bjones指出的那样,可能存在一些问题,即您的原始列如何作为文本或日期或时间保存.....我在尝试后得出的结论是您的功能顺序错误。

cDate(Format(table1.BeginTime,"HH:mm"))

cDate会将内容转换为日期,但不会对其进行格式化。

所以

FORMAT(cDate(table1.BeginTime), "hh:mm")

FORMAT(cDate(table1.BeginTime), "HH:mm")

FORMAT(cDate(table1.BeginTime), "Short Time")
如果时间存储为文本,

应该给你想要的东西。如果存储为日期时间,您可以将cDate全部放在一起并保持

FORMAT(table1.BeginTime, "Short Time") 

@Bjones回答。

答案 1 :(得分:0)

我认为您需要摆脱的是cDate函数,因为您的字段已经是DateTime格式。

SELECT Format(table1.BeginTime,"hh:nn")

答案 2 :(得分:0)

您不知道该查询的结果是什么。

如果您需要日期并以24小时格式查看,请使用:

Select table1.BeginTime

并为 h:nn hh:nn

列应用Format属性

如果您需要以24小时格式格式化为字符串的日期,请使用:

Select Format(table1.BeginTime, "hh:nn")

并且不需要格式化。

在任何情况下,即使格式字符串h: mm 可以使用,也可以使用h: nn 或hh: nn m 适用于本月。