【发布时间】:2011-06-21 06:56:42
【问题描述】:
使用 SQL,我想返回日期在 3 月 1 日至 6 月 31 日之间的所有记录(例如),但记录应涵盖所有年份。有没有一种简单的方法可以实现这一目标?
【问题讨论】:
-
“SQL”是指“SQL Server”?
标签: sql postgresql date datetime
使用 SQL,我想返回日期在 3 月 1 日至 6 月 31 日之间的所有记录(例如),但记录应涵盖所有年份。有没有一种简单的方法可以实现这一目标?
【问题讨论】:
标签: sql postgresql date datetime
如果您使用 PL/SQL 或 oracle SQL+,请执行以下操作
SELECT * FROM table
WHERE TO_CHAR(MONTH_COLUMN,'MM/DD') = '06/21'
这将为您提供日期为 6 月 21 日的所有行,无论年份如何。
【讨论】:
对于 SQL Server 使用:
select *
from table
where month(dtgCol) between 3 and 6
【讨论】:
使用日期函数从日期字段中获取月份和日期,并在 where 子句中使用。
根据您的数据库,函数名称可能会有所不同。但它通常会像
SELECT * FROM table
WHERE Month(dateField) = 6
AND (DayOfMonth(dateField) >= 1 AND DayOfMonth(dateField) <= 30)
在 SQL Server 中:
SELECT * FROM table
WHERE Month(dateField) = 6
AND (Day(dateField) >= 1 AND Day(dateField) <= 30)
【讨论】:
试试这个,绝对有效
选择 * 从表 WHERE Month(DateColumn) IN (3, 4, 5, 6)
【讨论】:
对于 SQL Server,我将使用以下内容。 例如:3 月 1 日至 6 月 31 日之间
select * from (
select *,DATEFROMPARTS(2011,MONTH(CreateDate),DAY(CreateDate)) as dt from tblAction
) as x
where x.dt between
DATEFROMPARTS(2011,3,1) and
DATEFROMPARTS(2011,6,31)
看看有没有帮助..:)
【讨论】: