C# 将 INT 转换为 DATE

Posted

技术标签:

【中文标题】C# 将 INT 转换为 DATE【英文标题】:C# Convert INT to DATE 【发布时间】:2020-07-08 12:55:04 【问题描述】:

我有一个小型 Winforms 测试项目,我从文本框中获取姓名、姓氏和年龄。在我的数据库中,我有列名称、姓氏和出生。出生列是数据类型 DATE。 (SQL Server 数据库)

    TABLE CUSTOMER
column name - Datatype nvchar
column lastname - Datatype nvchar
column birth - Datatype DATE

我知道如何将数据作为插入语句获取到我的数据库中。

我的问题是:

我得到的 INT 年龄是否可以转换为 DATE?

示例:来自文本框的年龄 38 -> 这应该写为 f.e. 27.03.1982 进入数据库。

【问题讨论】:

如何将代表年龄的int 转换为date?例如。如果我说我 20 岁,那可能意味着我的出生日期是 1999 年 3 月 28 日至 2020 年 3 月 27 日之间的任何一天。您需要出生日期才能准确存储此人的出生日期。例如,如果我的出生日期确实是 1999 年 3 月 28 日(当我加入 SO 时,我已经 12 岁了!)那么从明天开始,您的数据就会出错。 @Larnu,我知道这不是很好的工作实践,但我正在玩一点,这个问题我自己无法回答。谢谢。 【参考方案1】:

您可以将年龄变量传递给查询并使用dateadd()

dateadd(year, @age, cast(getdate() as date))

Demo on DB Fiddle

select dateadd(year, -38, cast(getdate() as date)) birth;
|出生| | :--------- | | 1982-03-27 |

请注意,这是一种相当不准确的计算出生日期的方法;年龄是一个日期间隔,应该包括月和日。您可能应该要求用户提供他们的出生日期,您可以从中得出年龄。

【讨论】:

这正是我想要的。我知道这样工作不好,但我正在玩 C#,所以我想测试这样的东西。谢谢。

以上是关于C# 将 INT 转换为 DATE的主要内容,如果未能解决你的问题,请参考以下文章

C#如何将DateTime的12小时格式转换为24小时时间格式????

c# 中如何把 string 类型如何转换为uint类型啊?

c#中怎么将string转换成int型

将 varchar 值“Collect_Date”转换为数据类型 int 时转换失败

将序列化的 C# DateTime 转换为 JS Date 对象

C#中怎么将string转换成int型