C# 选择下一个月的生日
我想显示下个月的生日列表C# 选择下一个月的生日,c#,sql,sql-server,sql-server-2005,C#,Sql,Sql Server,Sql Server 2005,我想显示下个月的生日列表 生日存储在生日列中。如何显示此内容?请尝试以下内容: SELECT BirthDay FROM TableName WHERE DATEPART(m, BirthDay) = UpcomingMonth 在此SQL查询中使用UpcomingMonth作为参数。希望这有帮助 Select birthdaycolumn from yourtable where MONTH(birthdaycolumn) = MONTH(GETDATE()) 试试这个会有用的试试这
生日存储在
生日
列中。如何显示此内容?请尝试以下内容:
SELECT BirthDay
FROM TableName
WHERE DATEPART(m, BirthDay) = UpcomingMonth
在此SQL查询中使用UpcomingMonth作为参数。希望这有帮助
Select birthdaycolumn from yourtable where MONTH(birthdaycolumn) = MONTH(GETDATE())
试试这个会有用的试试这个
Select *
from yourDataTable
where MONTH(birthdaycolumn) = (MONTH(GETDATE() + 1))
我的首选解决方案是有一个额外的列,您可以索引<代码>下一个生日 作为一个隔夜的过程,您需要更新该列,以确保该值始终在将来 这允许进行如下查询:
SELECT
myfriends.*
FROM
user AS myself
INNER JOIN
user AS myfriends
ON myfriends.next_birthday >= myself.next_birthday
AND myfriends.next_birthday < DATEADD(MONTH, 1, myself.next_birthday)
所有这些在范围上也是非常狭窄的。它为一个非常特殊的需求引入了一个新的列和一个新的维护工作。然后应该提出这个问题;这些成本比其他查询(通常需要扫描表等)更高吗?解决了这个问题
select * from Employee
where convert(nvarchar,convert(datetime,convert(nvarchar,YEAR(GETDATE()))+'.'+convert(nvarchar,MONTH(Birthday))+'.'+convert(nvarchar,DAY(Birthday))),102) between convert(nvarchar,getdate(),102) and convert(nvarchar,DATEADD(D,14 ,GETDATE()),102)
您需要使用生日值和当前年份的
日和月创建一个新的日期时间。向我们展示您的表结构和一些示例数据!你能说得更具体一点吗。你用什么栏目。字段的类型。也许到时候我能帮上忙。取当前月份、年份,并与列的月份、年份进行比较。如果你试过某样东西后有问题就回来。提示:查看GETDATE、MONTH和YEAR,或者DATEADDItzik Ben Gan在内部SQL Server系列中介绍了这一点。如果OP真的希望在一个月内,即介于GETDATE()
和DATEADD(month,1,GETDATE())
?介于getddate()和month(GETDATE+1())@Zoya之间-如果基准日期是2012-12-15
?您将如何仅显示12月下旬的生日以及1月上半月的生日?参数的前缀为@SYMBOL如果OP想要下个月,包括从月中开始,该怎么办?例如,如果基准日期为2012-12-15,您将如何显示12月下旬的生日加上1月上半月的生日?1。
如果OP希望下个月
包括从月中开始怎么办?例如,如果基准日期为2012-12-15
,您将如何仅显示12月下旬的生日以及1月上半月的生日<代码>2)。
即使您仅在日历月执行此操作,将1添加到GETDATE()
也不会有多大作用。感谢您的支持。我想选择即将到来的生日,然后按月在gridControl中显示结果。所以我需要分开一个月@Dems@mbbp-您可能希望在即将到来的案例中测试已接受的答案,处理从12月(12日)到1月(1日)的翻转。
select * from Employee
where convert(nvarchar,convert(datetime,convert(nvarchar,YEAR(GETDATE()))+'.'+convert(nvarchar,MONTH(Birthday))+'.'+convert(nvarchar,DAY(Birthday))),102) between convert(nvarchar,getdate(),102) and convert(nvarchar,DATEADD(D,14 ,GETDATE()),102)