以前使用的列类型为const addPrefix = str => str[0].split('\n').map(s => `> ${s}`).join('\n');
let str = addPrefix`Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Vestibulum pellentesque`;
console.log(str);
,但现在不会与DATEIME
一起使用。
DATE
无论如何从CONVERT(BIGINT,ev.StartDate) * -1
列获得BIGINT
值?
答案 0 :(得分:4)
您可以将cast
作为转化的datetime
开始日期。
CONVERT(BIGINT,CAST(ev.StartDate as DATETIME)) * -1
答案 1 :(得分:2)
又一种选择。这甚至会为你翻转标志
示例强>
Declare @YourTable table (StartDate date)
Insert Into @YourTable values ('2017-05-30')
Select DateDiff(DAY,StartDate,-1)
From @YourTable
<强>返回强>
-42884
答案 2 :(得分:2)
首先,SQL Server中的日期按1900年的天数计算。一个大的int开始有用,大约21亿。这相当于580万的一年。你真的有大日期吗?
当然,不允许转换为int
。您可以投射datetime
个值。 。 。但还有其他方法吗?
一种简单的方法是:
select 1 + datediff(day, 0, datecol)
&#34; + 1&#34;需要,以便该值与实际转换匹配。 (您可以使用&#34; -1&#34;而不是&#34; 0&#34;而不是。)
或许,您可能希望Unix时间以秒或毫秒为单位。为此:
select datediff_big(ms, '1970-01-01', datecol)
答案 3 :(得分:0)
您可能需要转换为varchar,然后转换为bigint
select Convert(bigint,convert(varchar(10),ev.StartDate,112))*(-1)