如何在日期字段 SQL Server 中仅设置天数

Posted

技术标签:

【中文标题】如何在日期字段 SQL Server 中仅设置天数【英文标题】:How to set just the day number inside date field SQL Server 【发布时间】:2021-04-14 10:43:08 【问题描述】:

我可以在 SQL Server 2014 的日期字段中只设置天数吗?我的意思是 '2011-02-01' 的 '01' 部分,还是我必须将 day 字段转换为 int?

类似:

UPDATE Calendar SET dayField = DAY(dates)

其中 dates 是一列后续日期,而 dayField 是类型:日期。

【问题讨论】:

样本数据和预期结果会让您的问题更容易理解。 我不确定我是否真的关注这里。 DAY 返回一个 int 值,所以您只是希望有一个包含日期的列吗?如果是这样,为什么不使用计算列呢? 是的,我知道我可以将此列转换为 int 类型,但我很好奇我是否可以在日期字段中只输入日期数字? 日期由年、月、日组成。如果您想单独存储一天,请选择其他数据类型。 【参考方案1】:

我可以在 SQL Server 2014 的日期字段中只设置天数吗?

假设您要将一列设置为该月的第一天。你会使用datefromparts():

UPDATE Calendar
    SET firstDayOfMonth = DATEFROMPARTS(year(date), month(date), 1);

【讨论】:

我不想要整个日期(我不想要这个:'yyyy-mm-dd'),我只想要:'dd' 日期始终是日期。您不能将其设置为“1”或 1 月或 2021 年。开始听起来像 XY problem。此外,日期以不可读的二进制格式存储。您在显示日期时看到的格式是您使用的应用程序的产物。 @MAXIM7 。 . .那么您不想将值存储在date 列中。

以上是关于如何在日期字段 SQL Server 中仅设置天数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL Server 2008 的 where 子句中仅比较日期并忽略时间

如何计算两个日期之间的月数和天数,而不在 SQL Server 中返回负值

如何从 MySQL 的 DATETIME 字段中仅选择日期?

利用SQL语句如何获得两个日期之间相差的天数

SQL SERVER:获取两个日期之间的总天数

利用SQL语句如何获得两个日期之间相差的天数