0

我正在为 ASP.NET 应用程序编写一些 SQL 语句。需要做的一件事是仅在开放期间显示信息。供应商软件会在上一个期间关闭时自动更新该期间。所以我发现自己做了一堆子选择,比如:

where date >= (SELECT DATE(CONCAT('20', CONCAT(YY, CONCAT('-', CONCAT( MM, (CONCAT('-', DD))))))) FROM LIB/FILE') 

是的,日期的每个部分都在单独的字段中。

使这个查询成为一个函数会使查询更有效率吗?我之前从未创建过函数,我该怎么做?我的想法是:

IsInRange(date)

所以我可以做到WHERE IsInRange(date)

或者,还有更好的方法?

4

3 回答 3

1
CREATE FUNCTION toDate(yy CHAR(2), mm CHAR(2), dd CHAR(2))
RETURNS DATE
RETURN DATE('20' || '-' || yy || '-' || mm || '-' || dd)

SELECT *
FROM table
WHERE date <= toDate(yy, mm, dd)
于 2011-02-11T02:54:49.820 回答
0

是的,但函数的重点是代码重用。如果您在其他地方这样做,或者预期会这样做,那就去做吧。

于 2011-02-09T21:59:53.677 回答
0

现在我创建了一个视图来将字段连接到一个日期中,这至少清理了一堆查询。

于 2011-02-24T01:39:32.037 回答