如何在日期字段 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 中返回负值