Sql2000数据库中的药品过期日期和现在的时间相比较,将还有30天就过期的药品显示出来,SQL语句如何写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sql2000数据库中的药品过期日期和现在的时间相比较,将还有30天就过期的药品显示出来,SQL语句如何写?相关的知识,希望对你有一定的参考价值。

VS2005(C#),Sql2000,求解上述问题。

参考技术A 还可以这样:
select * from tablename
where datediff(d,getdate(),过期日期) <=30
若只统计30天内将要过期的:
select * from tablename
where datediff(d,getdate(),过期日期) between 0 and 30本回答被提问者采纳
参考技术B select * from 库存表
where 过期日期<getdate()+30
这个是30天内要过期的,我觉得你要的应该是这个

SQL中的日期和时间转换查询

【中文标题】SQL中的日期和时间转换查询【英文标题】:Date and time conversion query in SQL 【发布时间】:2021-12-31 20:38:37 【问题描述】:

在我的数据库表中,有一个日期列,即预期日期,格式为 dd-mm-yyyy,该列的数据类型是文本。现在,我想将格式转换为 yyyy-mm-dd。但是日期根本没有改变,当我试图获取预期日期列的时间戳时也是如此。我遇到了一些错误。对于即将到来的日期,我使用了这个 STR_TO_DATE。但是这一年并没有像我预期的那样到来,时间戳也没有。

例如:

select STR_TO_DATE ('30-11-2011', '%d,%m,%y') as date ;

返回结果为

2020-11-30

对于时间戳

select STR_TO_DATE ('2011,11,30 12,30,45', '%y,%m,%d, %H,%I,%S');

我没有收到错误。

请帮助我得到这个问题的正确答案。

【问题讨论】:

能否请您指定您使用的 RDBMS。时间算术和转换取决于供应商 【参考方案1】:

对于第一个查询,您需要使用 %Y。请记住,在编写年份查询时,最好使用“Y”来表示年份。

SELECT STR_TO_DATE("30,11,2011", "%d,%m,%Y");

对于第二个,您也可以使用 '%Y' 代替 '%y'。对于分钟,使用 '%i' 而不是 '%I'。小时和分钟,您可以随意使用。

SELECT STR_TO_DATE("2011,11,30 12,30,45", "%Y,%m,%d %h,%i,%s");

有关 SQL 命令的更多说明,请参阅下面的documentation。

【讨论】:

【参考方案2】:

当使用 MySQL 的 STR_TO_DATE 时,您需要 %Y(大写 Y)作为 4 位数年份。此外,分钟由%i 表示,而不是%I,后者是从 0 到 12 的小时。所以使用:

SELECT STR_TO_DATE('30-11-2011', '%d-%m-%Y');
SELECT STR_TO_DATE('2011,11,30 12,30,45', '%Y,%m,%d %H,%i,%S');

【讨论】:

P.S.在%d 之后的, 也消失了。当您复制问题中的陈述并且仍然想知道为什么替换“不起作用”时,这将有所帮助....【参考方案3】:

对于第一个查询,您需要使用 %Y'。

SELECT STR_TO_DATE("30,11,2011", "%d,%m,%Y");

在几分钟内,只使用这个'%i'。

SELECT STR_TO_DATE("2011,11,30 12,30,45", "%Y,%m,%d %h,%i,%s");

【讨论】:

被否决,因为它是 2 天前发布的其他两个答案的总副本。这个答案添加了零个新信息。

以上是关于Sql2000数据库中的药品过期日期和现在的时间相比较,将还有30天就过期的药品显示出来,SQL语句如何写?的主要内容,如果未能解决你的问题,请参考以下文章

SQL时间函数

SQL按时间统计客户的月销售量和年销售量

sql2000 取出每行数据,并赋值给变量。

SQL2000,如日期时间的数据,我想对比每天,上一条时间和下一条时间对比。如30分钟超过的数据,就取出来

sql server2000如何将数字转换为日期时间

SQL 计算两个日期相差多少天数的函数