Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript将SQL日期编号转换为日期_Javascript_Date Conversion_Excel Dates - Fatal编程技术网

使用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
我需要再次使用JavaScript
convert2date(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拯救我的一天。