我的数据库中有一个Year
列,其中包含多年float
个值,例如(2014,2013,2012)。
是否可以将这些转换为DateTime
?日期,月份和时间值无关紧要我只需要DateTime
类型的另一个应用程序。
e.g。我可以将float
2014转换为DateTime
2014-01-01 00:00:00.000
答案 0 :(得分:2)
当然,只需转换为字符串并转换为日期时间:
select cast(cast(year as varchar(255)) + '0101' as datetime)
答案 1 :(得分:2)
是的,你可以!但是,您需要使用FLOOR
或CEILING
,然后将FLOAT
列投放到INT
。
DECLARE @year FLOAT = 2014
SELECT DATEADD(YEAR, CAST(FLOOR(@year) AS INT) - 1900, 0)
或者您可以直接CAST
将FLOAT
列INT
添加到DECLARE @year FLOAT = 2014.1
SELECT DATEADD(YEAR, CAST(@year AS INT) - 1900, 0)
:
procedure MemCheck<T>(x, y : T);
var
a, b : T;
vals : array of T;
c : T;
begin
a := x;
b := y;
c := a;
SetLength(vals, 4);
vals[0] := a;
vals[1] := a;
vals[2] := a;
vals[3] := a;
c := T(vals[2]); //c := a ; workes fine
Check
(
CompareMem(@c, @y, SizeOf(T)),
'Memory compare check'
);
end;
答案 2 :(得分:1)
{{1}}