-2

如果用户输入的受雇日期为 02/03/2013,那么它将显示2013 年 1 月 1 日(年初)到 2013 年3 月 30日(给定月份的月底)之间的所有员工信息。

提取结果的查询是什么。

empno  hiredate    name
-----------------------
01     02/03/2013  abc
02     23/07/2013  bvg
03     05/04/2013  fhdsk
04     22/08/2013  kjk

格式为 dd/mm/yyyy

4

1 回答 1

1

您需要提供更多信息,例如表架构、示例数据和您想要的示例。您的解决方案可能像这样基本:

SELECT *
FROM employee
WHERE hiredate between '01/01/2013' AND '30/03/2013';

或者您期待的不仅仅是 SQL 代码?


这里有一些伪代码可以帮助你。从概念上讲,这些是具有所示逻辑的用户定义函数。

SELECT *
FROM hiredate BETWEEN udf_BOY('02/03/2013') AND udf_EOM('02/03/2013');

udf_BOY(@date) :==
RETURN  CAST('01/01/' + DATEPART(year, @date) AS datetime)

udf_EOM(@date) :==
RETURN DATEADD(DAY, -(DAY(DATEADD(MONTH, 1, @date))), DATEADD(MONTH, 1, @date))
于 2013-09-29T16:27:38.520 回答