gpt4 book ai didi

sql-server-2008 - 如何排除 BETWEEN sql server 中的上限

转载 作者:行者123 更新时间:2023-12-01 22:43:06 24 4
gpt4 key购买 nike

我正在使用 SQL Server 作为我的数据库。我正在为我输入的日期搜索一行。这意味着搜索 submission_date 所在的行正是'12/13/2011' .首先,我将搜索条件日期转换为毫秒

Dec 13 2011 00:00:00 ='1323727200000'
Dec 14 2011 00:00:00 ='1323813600000'`

SELECT *
FROM log_file
WHERE submission_date BETWEEN '1323727200000' AND '1323813600000'

此查询将搜索 Dec 13 MidnightDec 14 Midnight ,但我想跳过上限值,即从 Dec 13 2011 00:00:00Dec 13 2011 59:59:59 .为此,我想使用 >= and < .这是正确的做法吗?

完成此操作后,我有一个 iBatis xml,我在其中编写了以下内容,这给了我错误。

<isNotEmpty prepend="AND" property="submissiondate">
submission_date <![CDATA[ >= ]]> #submissiondate # AND <![CDATA[ < ]]> #submissiondate #
</isNotEmpty>

请建议这是否是正确的方法。

谢谢

最佳答案

是的,您会使用 >=<通常用于时间/日期范围查询

或者,您可以从上限减去 3 毫秒以获得当天的最高日期时间(而不是较新的 datetime2)值 (xxx 23:59.59.997)

SELECT * FROM   log_file
WHERE submission_date BETWEEN 1323714600000 AND 1323801000000-3

注意:如果一切都是毫秒,减去 1 可能没问题......

编辑,为什么3ms的例子

SELECT 
DATEADD(millisecond, -1, '20111214'), -- 2011-12-14 00:00:00.000
DATEADD(millisecond, -2, '20111214'), -- 2011-12-13 23:59:59.997
DATEADD(millisecond, -3, '20111214') -- 2011-12-13 23:59:59.997

有趣的是,你确定现在是午夜吗?
对于 1323813600 秒,我得到 2011-12-13 22:00:00

在 SQL Server 上:

SELECT DATEADD(second, 1323813600, '19700101') 

在 MySQL 上

SELECT FROM_UNIXTIME(1323813600)

关于sql-server-2008 - 如何排除 BETWEEN sql server 中的上限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8667345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com