sql - 从序列号生成日期

标签 sql sql-server excel date formula

我有一位客户向我们提供日期作为序列号。他们给了我们一个将序列号转换为日期的 Excel 公式,但我们使用 SQL Server 2008 R2。我想知道是否有人可以告诉我如何将这些数字转换为 SQL Server 中的日期字段。

Excel 公式:

=DATE(1900+INT(F2/1000),1,MOD(F2,1000))

Excel表格:

Serial # (F2 cell)  | Date Value
---------------------------------
103078              | 3/19/2003
104077              | 3/17/2004

我需要一个 T-SQL 语句来获取数字并计算出正确的日期结果。

最佳答案

SELECT DATEADD(DAY, (@F2%1000)-1, LEFT(1900+(@F2/1000),4)+'0101')

从 2 个示例序列号中生成正确的日期。显然,将 @F2 替换为您从中获取 F2 值的任何内容。

Working on SQLFiddle (虽然我不确定如何让变量在那里工作,所以序列号是硬编码的)

关于sql - 从序列号生成日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20073878/

相关文章:

mysql - SQL - 非常复杂的查询

javascript - PHP数组未将多行插入数据库

excel - 在 Excel VBA 中循环字符串列表

excel - 如何使用 VBA/宏根据行内容将一些输入行转换为多个新行?

asp.net - 作为 ASP.Net 报告生成器替代 Excel

sql如何根据是否在列中找到字符串进行排序?

sql - AWS RDS : specifying lc_collate and lc_ctype for PostgreSQL

mysql - 从理论上讲,此 SQL 查询是否太大而无法在负载下快速提供服务?

SQL 连接两个具有相同列名的表,并获取每列的总和

sql-server - 获取表中所有组的相互值 (SQL Server)