我有一个列名 logdate,它的日期格式如下
2011-01-04 23:35:44.000
我想选择 2011 年 6 月 1 日至 2011 年 6 月 30 日之间的其他列,因此查询应该是
select * from abc where logdate = ?
我有一个列名 logdate,它的日期格式如下
2011-01-04 23:35:44.000
我想选择 2011 年 6 月 1 日至 2011 年 6 月 30 日之间的其他列,因此查询应该是
select * from abc where logdate = ?
您可以使用>=
和<
:
SELECT *
FROM abc
WHERE logdate >= '20110601' AND logdate < '20110701'
有许多方法可以操作 SQL 日期时间和表示 SQL 日期时间的字符串:
http://msdn.microsoft.com/en-us/library/ms186724(v=sql.105).aspx
一个非常直接的方法是使用 >= < 运算符。
SELECT *
FROM abc
WHERE logdate >= '20110601'
AND logdate < '20110701'
您要使用 < 7 月 1 日而不是 <= 6 月 30 日的原因是,对日期的字符串解析假定它是该日期的午夜,并且它将排除 6 月 30 日凌晨 12 点之后的任何值。
假设这LogDate
是一DateTime
列,您可以使用以下查询来获取月份的完整范围:
WHERE logdate >= '2011-06-01' AND logdate < '2011-07-01'