我创建了下面的SAS代码来提取特定日期的数据。
%let date =2016-12-31;
proc sql;
connect to teradata as tera ( user=testuser password=testpass );
create table new as select * from connection tera (select acct,org
from dw.act
where date= &date.);
disconnect from tera;
quit;
在某些情况下,由于假日原因,数据集中可能缺少特定日期。
我在想,如果%let语句中
我已经看到了许多关于如何创建SQL Server函数的帖子,该函数将向日期添加给定的工作日数。但是,它们都不能精确地计算出我需要的方式。我们有一个当前在代码中完成的函数,但我希望将其转移到本机SQL Server函数(供存储过程和查询使用)。在我们开始评估仓储费用之前,我们给我们的客户5个工作日来取货。这5个工作日不包括周末和节假日(我们有一个包含节假日日期的表格)。这里的诀窍是,我需要在5个工作日之后立即获得日期,无论它是周末还是节假日。所以我需要函数返回最后一个工作日,而不是之后的第一个工作日。所以,举个例子:
Oct 20th (Sat) plus 5 working days = Oc
我已经创建了一个SQL用户定义函数来确定给定的日期是否是日本假日。它现在由一个函数组成,这些函数在*n次调用相同的内联视图,看起来不太明智。虽然我知道最好的现实解决方案是构建一个日历表,但我不敢放弃我编写的所有代码行。我期待着重构想法。谢谢。
函数是假日(D)只是捆绑三个功能;每个功能定义三种类型的日本假日。
DELIMITER //
CREATE FUNCTION isholiday(d date) RETURNS int
BEGIN
DECLARE t int;
CASE WHEN isregularholiday(d) = 1
THEN SET t = 1;
IF(ISNUMBER(A1:A100),A1:A100,"")是一个数组公式吗?如果不是,那是什么? 我从一个网站上复制了一个假日列表,并将其粘贴到Excel中。原始数据有四列(日期、假日名称、工作日、备注)。粘贴到Excel后,所有内容都显示在A列中,如下所示: date
name of the holiday
weekday
note
date
name of the holiday
.....
..... 我尝试了几种方法,看看是否可以将数据粘贴到列中,但都无济于事。因此,我需要将日期提取到另一列中。在B栏中,我输入了这个公式=IF(ISNUMBER(A1:A100
许多评论建议在SQL Server中创建一个日期表,用于计算工作日和假日-这是一个很好的想法!我找到了一篇关于如何在SQL Server中创建这样一组表的很好的操作文章-- 。如果你需要做大量的日期计算,我强烈推荐这篇文章。
从这些表中,我创建了一个名为USCalendar的视图,它可以计算结束日期,给定开始日期(03/01/21)和营业天数(180) -工作完美!
select Top 1 TheDate as EndDate
from (
select Top 180 TheDate from USCalendar
Where TheDate>='03/01/
我用PL/SQL编写了一个布尔函数,它接受日期作为参数,并根据包含假日日期的表检查参数,如果参数在表中,则函数返回TRUE,否则返回FALSE。代码如下所示:
CREATE OR REPLACE
FUNCTION isholiday (p_holiday DATE)
RETURN BOOLEAN
IS
CURSOR c_holiday is SELECT holiday_date FROM dbp_holiday;
BEGIN
FOR r1 IN c_holiday
LOOP
IF p_holiday = r1.holiday_date
THEN
RET
我正在制作一个工作日计算器,它接受日期和偏移量,然后返回日期。因此,如果您通过了2017年2月27日(星期一)的审核,并想知道2017年2月23日(星期四)返回之前的2个工作日的日期。它还考虑了假日,因此如果在前面的示例中,2017年2月23日是假日,它将返回2017年2月22日。
我在SQL Server中的日期字段中有一个假日列表,格式为yyyy-mm-dd。问题是,当它们被转换为javascript Date对象时,它会附加一个时区偏移量,在东部标准时间的情况下,从日期减去5小时,将其回滚到前一天。
new Date('2017-02-20');
变成了
Sun Feb
我正在设法从asp.net C#中的sql查询中创建treeview菜单。作为一个学习练习,我有一个包含过去三年假期的数据库--我想创建一个treeview,显示按年排序的假期。例如,“年份->假日名称->假日日期”,其中“->”表示层次级别。
无论如何,我将使用以下查询将假期作为XML文档从SQL返回:
SELECT [Year], [Holiday], [Date] FROM [Database] FOR XML PATH('Holiday'), ROOT('Holidays')
当然,这将返回一个没有分组的XML文档,因此,当数据来自数
我正在尝试写一个SQL来计算我们公司的“业绩日期”。
为了获得一种感觉,我从SQL中编写了一个摘录:
..CASE
WHEN EXTRACT(weekday FROM deliverydate) = 1 THEN (bek.deliverydate-3)
WHEN EXTRACT(weekday FROM deliverydate) = 2 THEN (bek.deliverydate-3)
ELSE
bek.deliverydate-2
END AS performancedate
这个很好用。(周末将演出日延长一天,因为送货需要多一天)
接下来
一个表有股票名称、价值和股票的生效日期,假日/周末不会有任何条目。如果我通过包含假日/周末的日期范围,我想返回以前的日期记录。
例如:
表名:股票
ID Name Value EffectiveDate
1 IBM 200.0000 2015-12-31 00:00:00.000
2 IBM 201.4500 2016-01-04 00:00:00.000
3 IBM 201.0000 2016-01-05 00:00:00.000
4 IBM 202.0000 2016-01-06 00:00:00.
我正在寻找一个模式或代码示例,其中用户可以输入他们自己的记录,覆盖默认记录。
例如,假日表默认记录可能是:
HolidayName Holiday Date CompanyId
----------- ------------ ---------
New Year 01-Jan-2016 NULL
Day After 02-Jan-2016 NULL
在用户添加自己的假期(对于CompanyId“1234”)之后:
HolidayName Holiday Date CompanyId
----------- ------------ ---------