首页 > 解决方案 > C# 将 INT 转换为 DATE

问题描述

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

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

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

我的问题是:

是否有可能将我作为 INT 获得的年龄转换为 DATE?

示例:文本框中的年龄 38 -> 这应该作为 fe 27.03.1982 写入 DB。

标签: c#sqlsql-servertsqldate

解决方案


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

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

DB Fiddle 上的演示

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

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


推荐阅读