【发布时间】:2022-01-11 06:42:08
【问题描述】:
我正在尝试从头开始查询我创建的数据库。对于我数据库中的每个职位发布,我将发布日期存储在“日期”数据类型中,其格式为“DD-MON-YY”。我想知道在发布日期后一个月后哪些职位没有被填写。
到目前为止,我可以查询我的数据库并找到尚未填写的作业,因为我的表中的特定属性为空。但是我不知道如何添加已经至少一个月的条件。
SELECT JOBID
FROM JOB
WHERE HIRED IS NULL;
作为参考,我在 Oracle 中创建了这个数据库,并且正在使用 SQL 开发人员。
【问题讨论】:
-
"格式为"DD-MON-YY"" 不,不是;
DATE是二进制数据类型,没有格式。您正在使用的用户界面可以选择以该格式显示DATE,但数据库不会以该格式(或任何格式)存储它,因为它使用 7世纪、世纪年、月、日、小时、分钟和秒的字节(并且总是有这些组件,即使 UI 没有显示其中的一些)。 -
请在edit 问题中包含minimal reproducible example 和:
CREATE TABLE表的声明;INSERT语句用于一些演示问题的示例数据;以及您对该样本数据的预期输出。您没有告诉我们哪一列存储日期,也没有告诉我们您是否要将其与当前日期或另一列进行比较。 -
您如何定义特定日期的“一个月后”?这在月末是模棱两可的。例如:日期是 4 月 30 日。“一个月后”是什么时候 - 5 月 30 日还是 5 月 31 日? Oracle 数据库中不同的此类功能在这个主题上甚至彼此不一致。所以,请澄清。或者“任何合理的答案”对你有用吗?
-
任何合理的答案都有效,我正在寻找更一般的答案。我不明白如何添加一个条件,即我发布的日期加上一个月。我想换个说法,我将如何制定这个条件,我是否会在存储的日期上加一个月并将其与今天的日期进行比较?我想我不明白其中的逻辑。