SQL Server查询返回两个日期时间之间的数据,格式为01/07/2020 01:01:01 a。米

时间:2020-07-01 16:46:35

标签: sql-server

我遇到了一个查询,该查询在两个日期时间之间返回数据,我要解决的查询就是这个

pay.date BETWEEN '01/06/2020 00:28:46 a. m.' AND '01/06/2020 10:38:45 a. m.' 

该查询未检测到a。米如果我在上午10点和晚上10点付款,它将把这两个付款都检测为t。 t。部分未检测到,我已经搜索了一段时间没有运气,在此先感谢:)

2 个答案:

答案 0 :(得分:0)

使用明确的文字格式,并且不依赖于运行时或连接设置。 Tibor's discussion中的更多信息。

在这种情况下:

where pay.date between '20200601 00:28:46' and '20200601 10:38:45'

请注意,我假设6月而非1月-根据需要进行调整。包括在内,并确保您了解pay.date的数据类型的局限性。如果是datetime,则该值精确到3ms。验证您的数据是否符合您对秒精度的假设。

答案 1 :(得分:0)

通过实际的<body> <div class="container"> <div class="one"> </div> <div class="two"> </div> <div class="three"> </div> <div class="four"> </div> </div> <script src="script.js"></script> </body>类型进行过滤:

datetime

使用cast(replace(replace(pay.date, ' a. m.', 'am'), ' p. m.', 'pm') as datetime) 可能更好,因此您可以指定正确的格式。如果您不能以易于转换的格式提供日期文字,请执行类似的替换操作,并将其强制转换。