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类型啊?
将 varchar 值“Collect_Date”转换为数据类型 int 时转换失败