我有一个客户,它提供日期给我们作为序列号。他们给了我们一个将序列号转换为最新的Excel公式,但我们使用的是SQL Server2008 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中的一个语句,它将接受数字并计算到正确的日期结果。
发布于 2013-11-19 22:28:24
SELECT DATEADD(DAY, (@F2%1000)-1, LEFT(1900+(@F2/1000),4)+'0101')
从两个示例序列号中生成正确的日期。显然,将@F2替换为您从中获取F2值的任何内容。
Working on SQLFiddle (虽然我不确定如何让变量在那里工作,所以序列号是硬编码的)
发布于 2013-11-19 22:34:31
试试这个:
select dateadd(day, @f2 % 1000 - 1, dateadd(year, @f2 / 1000, '1900-1-1'))
https://stackoverflow.com/questions/20073878
复制相似问题