我可以为此值“19920000”转换日期格式吗?

1 sql-server-2008 sql-server date

我有一个价值19920000。这是日期格式yyyyMMdd。我想按表中的日期字段保存。您可能会看到它是无效数据,因为日和月值为零。我可以在 SQL Server 中将日期格式转换为这个值吗?可不可以?

如何仅在日期字段中保存年份?

我从excel表中获取数据。这些数据是客户的出生日期。有些人想隐藏出生日期的日期和月份。他们没有给出正确的日期格式。我的应用程序是从 excel 表中读取数据并显示在 datagridview 表上,然后保存到数据库。数据量大,至少一次读取约30000条以上记录。我无法为此数据字段分隔列,因为性能可能会下降。

我正在使用 SQL Server 2008。

.

Vla*_*nov 5

date类型不能存储部分日期,如仅年份或仅日和月。

在一个项目中,我需要存储不完整的日期,并且我为day (tinyint)month (tinyint)和使用了三个单独的可为空的列year (smallint)。我不知道在什么情况下您需要使用varchar而不是整数类型。

就我而言,它是有关客户出生日期的信息,而且销售人员通常不知道年份,但知道月份或日期。这种方法非常灵活,允许用户输入他拥有的任何信息。知道缺少日期的某些部分也很重要,例如“我们不知道确切的出生日期,但我们知道它是在六月”。

显然,应用程序中有一堆自定义检查(不是在数据库级别)试图阻止输入诸如 6 月 31 日之类的内容。在那个特定的项目中,可以在应用程序中执行检查。很可能也可以在 T-SQL 中实现它们。一般来说,最好在数据库级别实现约束,因为应用程序来来去去,但数据仍然存在。

在查询中使用这些不完整的日期也更加困难。不同的查询/报告需要不同的方法来处理丢失的位。

30K 行根本不是很多,性能应该不是问题。因此,我将专注于对您的 Excel 数据进行智能解析和验证,并存储您可以提取的所有信息。