我想在标签中的ado.net应用程序中显示生日警报。
,我该怎么证明呢?
我只想显示其生日日期为我的字段的名称,name,id,DateOfBirth和他的数据类型是Datetime值存储在该字段中的mm/dd/yyyy格式。
请帮助我,这对我的项目非常重要
我写了一个查询,但没有用:
select PationName,ContactNo
from Physio_cureTable
where DateOfBirth between getdate()-1
and getdate()iam在我的ado.net应用程序中编写了下面的代码,但它给了我空白数据,我检查输入了今天的日期和月份,但也显示了空白数据
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!!";发布于 2013-04-14 06:36:42
您需要比较两个日期值,并忽略它们的时间值。为此,您可以将它们转换为DATE,然后比较它们;
即(MS SQL 2008)
SELECT PationName, ContactNo FROM Physio_cureTable
WHERE CAST(DateOfBirth AS DATE) = CAST(GETDATE() AS DATE)GETDATE()返回今天的日期(随时间,所以您也需要转换它)。
即(MS SQL 2005)
SELECT PationName, ContactNo FROM Physio_cureTable
WHERE DateOfBirth >= DATEADD(day, 0, GETDATE())
AND DateOfBirth < DATEADD(day, 1, GETDATE())请注意,这将比较日期,实际上您想要比较没有年份的日期,可以使用不同的方法:
SELECT PationName, ContactNo FROM Physio_cureTable
WHERE datepart(d, DateOfBirth) = datepart(d, getdate()) AND
datepart(m, DateOfBirth) = datepart(m, getdate())发布于 2013-04-14 09:52:34
假设生日是'20100414 01:01:01',那么条件'2013-04-14‘- '2013-04-15’对你来说是必要的。
对于SQLServer2008+
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
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))) https://stackoverflow.com/questions/15996419
复制相似问题