标签: datediff

DATE_DIFF,但仅计算工作日

我有一个相当简单的查询;它看起来像这样:

SELECT
order_date,
pickup_date,
DATE_DIFF(pickup_date,order_date, day) order_to_pickup
FROM
`orders.table`
Run Code Online (Sandbox Code Playgroud)

唯一的问题是,我需要计算工作日的日期差异,而不是所有日期。

因此,上面的查询返回的不是:

+------------+-------------+-----------------+
| order_date | pickup_date | order_to_pickup |
+------------+-------------+-----------------+
| 3/29/19    | 4/3/19      |               5 |
| 3/29/19    | 4/2/19      |               4 |
+------------+-------------+-----------------+
Run Code Online (Sandbox Code Playgroud)

我希望它返回:

+------------+-------------+-----------------+
| order_date | pickup_date | order_to_pickup |
+------------+-------------+-----------------+
| 3/29/19    | 4/3/19      |               2 |
| 3/29/19    | 4/2/19      |               3 |
+------------+-------------+-----------------+
Run Code Online (Sandbox Code Playgroud)

sql datediff google-bigquery

5
推荐指数
1
解决办法
9301
查看次数

Difference in days between two dates in R using dplyr and lubridate?

Looking to do the SQL equivalent of datediff in R?

基本上,我想在 R 中进行这个计算

Delivery Date  Expected Date   Difference 
2022-01-05     2022-01-07         -2 
        
Run Code Online (Sandbox Code Playgroud)

datediff r lubridate dplyr tidyverse

5
推荐指数
1
解决办法
5560
查看次数

SQL(?):计算两个日期时间值之间的时间

当我需要仅计算08:00:00-16:00:00之间的时间时,计算从MySQL获取的两个日期时间值之间的时间的最佳方法是什么.

例如,如果我有值2008-10-13 18:00:00和2008-10-14 10:00:00,则时差应为02:00:00.

我可以用SQL做什么或者最好的方法是什么?我正在建立一个网站并使用PHP.

谢谢您的回答.

编辑:确切的是,我正在尝试计算"票"在工作时间内处于特定状态的时间.时间可能是几个星期.

EDIT2:我没有计算实际时差的问题,但减去了关闭时间,每天00:00:00-08:00:00和16:00:00-00:00:00.

-Samuli

mysql sql datediff

4
推荐指数
1
解决办法
4253
查看次数

SQL DATEDIFF(年,......,......)是一项昂贵的计算吗?

我正在尝试优化一些非常复杂的SQL查询,因为它需要很长时间才能完成.

在我的查询中,我动态创建了具有许多相同函数的SQL语句,因此我创建了一个临时表,其中每个函数只调用一次而不是多次 - 这将我的执行时间缩短了3/4.

所以我的问题是,如果1000个日期计算的范围缩小到100,我可以期待看到很多不同吗?

编辑:查询如下所示:

SELECT DISTINCT M.MID, M.RE FROM #TEMP INNER JOIN M ON #TEMP.MID=M.MID 
WHERE ( #TEMP.Property1=1 ) AND 
DATEDIFF( year, M.DOB, @date2 ) >= 15  AND  DATEDIFF( year, M.DOB, @date2 ) <= 17 
Run Code Online (Sandbox Code Playgroud)

其中这些是作为字符串动态生成的(按位组合在一起)然后执行,以便可以在每次迭代时更改各种参数 - 主要是最后一行,包含各种DATEDIFF查询.

像这样的大约420个查询,这些日期计算是这样计算的.我知道我可以轻松地将它们全部放入临时表(1000个日期变为50) - 但它是否值得,它会在几秒钟内产生任何差异吗?我希望能比十分之一秒更好地改进.

sql datediff query-optimization

4
推荐指数
1
解决办法
5551
查看次数

两个Java日期之间的天数差异?

我想获得两个Java Date对象之间的区别.我用过Joda-Time库.但问题是我得到的天差异大于实际天差.

这是我的代码片段:

DateFormat formatter = new SimpleDateFormat("mm/dd/yyyy");

Date someDate=new Date();
Date today = Calendar.getInstance().getTime();

try     {
    someDate = formatter.parse("06/22/2010");
}
catch(ParseException pe)    {
    System.out.println("Parser Exception");
}

int days = Days.daysBetween(new DateTime(someDate), new DateTime(today)).getDays();

System.out.println(" Days Between " + someDate + " : " + today + " - " + days);
Run Code Online (Sandbox Code Playgroud)

这是我的输出:

 Days Between Fri Jan 22 00:06:00 IST 2010 : Sun Jul 25 19:27:01 IST 2010 - 184
Run Code Online (Sandbox Code Playgroud)

在这里,为什么需要"06/22/2010"作为1月22日?有没有人面临类似的问题?

帮帮我的朋友.. Thanx提前..

java datediff jodatime

4
推荐指数
2
解决办法
2万
查看次数

绝对参数在DateTime :: diff(DateTime [,bool absolute = false])中做了什么

这是示例代码

$c = new DateTime();
$o = clone $c;
$o->modify('-60 days');
$diff = $c->diff($o);
$diff2 = $c->diff($o, TRUE);
var_dump($diff, $diff2);
Run Code Online (Sandbox Code Playgroud)

哪个输出

object(DateInterval)#3 (8) {
  ["y"]=> int(0), ["m"]=> int(1), ["d"]=> int(29), ["h"]=> int(0), ["i"]=> int(0),
  ["s"]=> int(0), ["invert"]=> int(1), ["days"]=> int(60)
}
object(DateInterval)#4 (8) {
  ["y"]=> int(0), ["m"]=> int(1), ["d"]=> int(29), ["h"]=> int(0), ["i"]=> int(0),
  ["s"]=> int(0), ["invert"]=> int(0), ["days"]=> int(60)
}
Run Code Online (Sandbox Code Playgroud)

正如我所看到的,只有"反转"属性发生了变化.这是什么意思?

php datetime datediff

4
推荐指数
1
解决办法
3261
查看次数

为什么ColdFusion的DateDiff返回奇怪/负值?

再次拉出我的头发......

我需要计算两个日期之间的差异.我这样做:

 <cfset d = DateDiff("d", Dateformat( active_apps.app_base_coupon_start, "dd.mm.yyyy"), Dateformat( variables.useDate, "dd.mm.yyyy") )>
Run Code Online (Sandbox Code Playgroud)

使用active_apps.app_base_coupon_start= 27.07.2012variables.useDate= today = 02.10.2012.

我抛弃了两个值,他们没关系.然而,当我寻找的dateDiff回报-168(7月4天,8月31日,9月30日,10月2日)67天.

问:
有人可以阻止我失去了我剩余的头发,告诉我我在做什么错在这里或者,如果有一个更简单的方式来获得在天有什么区别?

编辑:
好的,它也是这样的:

<cfif DateAdd("d", active_apps.app_grace_time, Dateformat( active_apps.app_base_coupon_start, "dd.mm.yyyy") ) GT now()>
     <cfdump output="e:\s\page\t\dump.txt" label="catch" var="YUP"> 
<cfelse>
    <cfdump output="e:\s\page\t\dump.txt" label="catch" var="NOPE"> 
</cfif>
Run Code Online (Sandbox Code Playgroud)

但我还是想知道,为什么dateDiff要回归奇怪的价值观.

coldfusion datediff date

4
推荐指数
2
解决办法
3557
查看次数

SQL查询获取最后两条记录的DateDiff

我有一个名为Event的表,其中eventNum作为主键,日期作为SQL Server 2008 R2中的datetime2(7).我试图获取表中最后两行的日期,并在几分钟内得到差异.这就是我目前拥有的:

Select DATEDIFF(MI, e.date,(Select e2.date from Event e2 where eventNum = (Select MAX(e2.eventNum))))
    From Event e
    Where eventNum = (Select MAX(e.eventNum)-1 from e)
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

列名无效'从事件中选择eventNum,其中eventNum =从Event'中选择MAX(eventNum).

我已经改变了100次,无法让它发挥作用.有帮助吗?

sql sql-server datediff

4
推荐指数
1
解决办法
2788
查看次数

dateTime字段SSRS之间的时差

我有两个日期时间字段,我需要显示它们之间的区别.我用这个表达式来计算它:

=DateDiff("n", Fields!hra_atncion.Value, Fields!fcha_incio.Value)
Run Code Online (Sandbox Code Playgroud)

结果列应为HH:mm,但结果为Long表达式类型.像428011156这样的东西

任何答案都会被贬低!

更新2013年11月21日

我如何获得12-11-2013 20:0014-11-2013 08:00之间的分钟时差

datediff reporting-services ssrs-2008 datepart

4
推荐指数
1
解决办法
4329
查看次数

组之间相同字段中日期之间的平均时间

我有一个包含销售数据和用户ID的交易数据库,如下所示:

id_usuarioweb   dt_fechaventa
1551415         2015-08-01 14:57:21.737
1551415         2015-08-06 15:34:21.920
6958538         2015-07-30 09:26:24.427
6958538         2015-08-05 09:30:06.247
6958538         2015-08-31 17:39:02.027
39101175        2015-08-05 16:34:17.990
39101175        2015-09-20 20:37:26.043
1551415         2015-09-05 13:41:43.767
3673384         2015-09-06 13:34:23.440
Run Code Online (Sandbox Code Playgroud)

我想计算数据库中同一客户的日期之间的平均差异(找出用户购买的平均频率).

我知道我可以使用两列进行约会,但是我在尝试在同一个字段中执行此操作并按用户ID"分组"时遇到问题.

期望的结果是这样的:

id_usuarioweb   avgtime_days
1551415         5
6958538         25
39101175        25
1551415         0
3673384         0
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?我将按user_id和dt_fechaventa(销售时间)排序数据库.

使用:SQL Server 2008

sql sql-server average datediff date

4
推荐指数
1
解决办法
1345
查看次数