首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ado.net标签中显示生日提醒

如何在ado.net标签中显示生日提醒
EN

Stack Overflow用户
提问于 2013-04-14 06:31:26
回答 2查看 1.1K关注 0票数 2

我想在标签中的ado.net应用程序中显示生日警报。

,我该怎么证明呢?

我只想显示其生日日期为我的字段的名称,nameidDateOfBirth和他的数据类型是Datetime值存储在该字段中的mm/dd/yyyy格式。

请帮助我,这对我的项目非常重要

我写了一个查询,但没有用:

代码语言:javascript
复制
select PationName,ContactNo
from Physio_cureTable 
where DateOfBirth between getdate()-1 
                      and getdate()

iam在我的ado.net应用程序中编写了下面的代码,但它给了我空白数据,我检查输入了今天的日期和月份,但也显示了空白数据

代码语言:javascript
复制
 string result = "SELECT PationName FROM Physio_cureTable WHERE CAST(DateOfBirth AS DATETIME)=CAST(GETDATE() AS DATETIME)";
            SqlCommand showresult = new SqlCommand(result, con);

            con.Open();
            string actresult  =(string) showresult.ExecuteScalar();
            con.Close();

            if (!string.IsNullOrEmpty(actresult))
                label18.Text ="Happy Birthday"+actresult+"!";
            else
                label18.Text = "There is No Birthday!!";
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-14 06:36:42

您需要比较两个日期值,并忽略它们的时间值。为此,您可以将它们转换为DATE,然后比较它们;

即(MS SQL 2008)

代码语言:javascript
复制
SELECT PationName, ContactNo FROM Physio_cureTable 
WHERE CAST(DateOfBirth AS DATE) = CAST(GETDATE() AS DATE)

GETDATE()返回今天的日期(随时间,所以您也需要转换它)。

即(MS SQL 2005)

代码语言:javascript
复制
SELECT PationName, ContactNo FROM Physio_cureTable 
WHERE DateOfBirth >= DATEADD(day, 0, GETDATE())
AND DateOfBirth < DATEADD(day, 1, GETDATE())

请注意,这将比较日期,实际上您想要比较没有年份的日期,可以使用不同的方法:

代码语言:javascript
复制
SELECT PationName, ContactNo FROM Physio_cureTable
WHERE  datepart(d, DateOfBirth) = datepart(d, getdate()) AND
datepart(m, DateOfBirth) = datepart(m, getdate())
票数 2
EN

Stack Overflow用户

发布于 2013-04-14 09:52:34

假设生日是'20100414 01:01:01',那么条件'2013-04-14‘- '2013-04-15’对你来说是必要的。

对于SQLServer2008+

代码语言:javascript
复制
SELECT PationName,ContactNo      
FROM Physio_cureTable
WHERE DateOfBirth >= DATEADD(YEAR, DATEDIFF(YEAR, GETDATE(), DateOfBirth), CAST(GETDATE() AS date))
      AND DateOfBirth < DATEADD(YEAR, DATEDIFF(YEAR, GETDATE(), DateOfBirth), CAST(DATEADD(day , 1, GETDATE()) AS date))  

基于SQLFiddle的演示

对于SQLServer2005

代码语言:javascript
复制
SELECT PationName,ContactNo      
FROM Physio_cureTable
WHERE DateOfBirth >= DATEADD(YEAR, DATEDIFF(YEAR, GETDATE(), DateOfBirth), CAST(datediff(d,0,GETDATE()) AS datetime))
      AND DateOfBirth < DATEADD(YEAR, DATEDIFF(YEAR, GETDATE(), DateOfBirth), DATEADD(day , 1, CAST(datediff(d,0,GETDATE()) AS datetime)))             
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15996419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档