使用javascript将SQL日期编号转换为日期
加布里埃尔·彼得里奥利请在结束之前阅读我的问题使用javascript将SQL日期编号转换为日期,javascript,date-conversion,excel-dates,Javascript,Date Conversion,Excel Dates,加布里埃尔·彼得里奥利请在结束之前阅读我的问题 我的SQL报告每天都有,INT as Date是完美的,两年前我测试了Azure CosmosDB,我能够使用JavaScript进行转换,我使用了UDF完成了转换,我现在刚刚需要一个项目,运气不好,真不敢相信这么多人在没有编程技能和“管理”的情况下轻视问题和管理,我会再做一次,我不会放弃,但我今天需要代码。 如果经理没有再次关闭我的问题,我将发布解决方案 原来的问题是: 我需要使用javascript将SQL生成的INT-date转换为日期 我知
我的SQL报告每天都有,INT as Date是完美的,两年前我测试了Azure CosmosDB,我能够使用JavaScript进行转换,我使用了UDF完成了转换,我现在刚刚需要一个项目,运气不好,真不敢相信这么多人在没有编程技能和“管理”的情况下轻视问题和管理,我会再做一次,我不会放弃,但我今天需要代码。 如果经理没有再次关闭我的问题,我将发布解决方案 原来的问题是: 我需要使用javascript将SQL生成的INT-date转换为日期 我知道这是可能的,在今天糟糕的一天到来之前我就这么做了,现在是时候了 过程如下: 我使用SQL将日期转换为INT
select 'cast(getdate() as int)'
select cast(getdate() as int)
-- today 43811
我需要用Javascript把它带回来。没有Jquery或其他
--more exaples
select 'cast(40702 as smalldatetime)'
select cast(40702 as smalldatetime)
--output 2011-06-10 00:00:00
select 'cast(getdate() as float)'
select cast(getdate() as float)
-- output 43810.6597960262
我需要再次使用JavaScriptconvert2date(40702)-->2011-06-10
convert2date(43811)-->2019-12-14您拥有的是1900-01-01的天数计数,您需要添加给定的天数
函数转换日期(天){
常数
isLeapYear=year=>(!(第%4年)和(!!(第%100年))| |!(第%400年),
daysInMonth=(月,年)=>[31,28,31,30,31,30,31,31,30,31][month-1]+isLeapYear(年);
var日期=[1900,1,1],
y=isLeapYear(日期[0])+365,
D
而(天>=y){
日期[0]++;
天-=y;
y=isLeapYear(日期[0])+365;
}
d=月日(日期[1],日期[0]);
而(天>=d){
日期[1]++;
天数-=d;
d=月日(日期[1],日期[0]);
}
日期[2]+=天;
返回日期.map((v,i)=>v.toString().padStart(i?2:4,0)).join('-');
}
console.log(convert2date(40702));//2011-06-10
console.log(convert2date(43811));//2019-12-14
为什么不获取iso日期并使用此日期获取实例?@Valentin这可能会有所帮助you@Deleted不,这用于将JavaScript日期转换为Unix时间戳。OP希望获得一个SQL时间戳并将其转换为JavaScript日期。这是一个相反的过程,它是从一个不同的时间格式转换过来的。你知道如果你不把它转换成整数,你会得到你想要的格式吗?如果这是为了家庭作业,或者您对sql没有实际控制权,请这样说,这将限制您收到的建议数量,因为现在,解决这一问题的正确方法是首先不要将其转换为整数。否则,也许看看javascript内置函数,但它似乎无法处理天数。我的SQL报告是每日报告,INT as Date是完美的,两年前我测试了Azure CosmosDB,我能够使用javascript进行转换。我使用UDF进行转换,我现在只需要一个项目,运气不好,真不敢相信这么多人在没有编程技能的情况下轻视问题和管理,我会再做一次,我不会放弃,但我今天需要代码。非常感谢@Nina you拯救我的一天。