标签: datediff

有没有办法从 SQL 中的日期中减去天数?

我知道 DATEDIFF(d, date1, date2),但我不想减去两个日期,而是减去一个日期的天数。

例如:

“2010-04-13” - 4 =“2010-04-09”

mySQL 可以吗?

mysql sql datediff

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

SQL查询中的日期范围的DATEDIFF()或BETWEEN

我最近被告知BETWEEN在SQL中使用该方法有点不可靠,因此我应该使用它DATEDIFF().但是,另一位程序员告诉我情况并非如此,BETWEEN只要日期格式正确,该方法在所有情况下都能很好地运行.

请有人通过陈述哪种方法更好以及为什么解决这个问题?

目前我的日期范围SQL如下所示:

DATEDIFF(d,'01-Jan-1970',SIH.[Something_Date]) >= 0 AND DATEDIFF(d,'01-Jan-2013',SIH.[Something_Date]) <= 0
Run Code Online (Sandbox Code Playgroud)

但是,如果我能确定它是可靠的,我宁愿这样写它:

SIH.[Something_Date] BETWEEN '01-Jan-1970' AND '01-Jan-2013'
Run Code Online (Sandbox Code Playgroud)

在这种特殊情况下,我使用的是MsSQL,但是,我已经标记了MySQL,因为我想知道这是否也适用于此

mysql sql sql-server datediff

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

Javascript:毫秒到日期

我将如何获取毫秒数和特定数据。例如,我知道如何创建日期:

var d = new Date(2014,02,22,12,0,0,0);
Run Code Online (Sandbox Code Playgroud)

并获取今天的日期:

(new Date()).getTime() + 10*24*60*60*1000;      
Run Code Online (Sandbox Code Playgroud)

但现在我该如何获取该日期发生之前的总毫秒数呢?

javascript datediff date

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

如何有效地比较两个DateTime并检查它们是否在同一天?

我有两个DateTime对象

$lastDate = $entity->getDate(); // is a DateTime with same format as $today
$today    = \DateTime::createFromFormat('!Y-m-d', date('Y-m-d'));
Run Code Online (Sandbox Code Playgroud)

现在我想检查一下,如果这两个日期是同一天,或者它们是否相隔超过一天(但这也应该包括$lastDay昨天晚上11点和$today新的一天凌晨1点).

到目前为止我所拥有的是什么

$diff = $today->diff($lastDate);

if($diff->days > 0) {
    $return = false;
} else {
    $return = true;
}
Run Code Online (Sandbox Code Playgroud)

问题是:这似乎可以计算出日期是否超过彼此超过24小时,并且只有true在这种情况下才会设置.

我可以考虑通过比较来比较它们$date->format('d');,但这意味着我也会检查年份和月份.我知道这样可以完美地工作,但这将是一个五行或左右.

所以我的问题是:有没有更有效的方法来检查这个?这样的任何操作diff()都会给我一个单行的结果?

php datetime datediff

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

按ID计算时差

我有这样的数据:

Incident.ID.. = c(rep("INCFI0000029582",4), rep("INCFI0000029587",4))
date = c("2014-09-25 08:39:45", "2014-09-25 08:39:48", "2014-09-25 08:40:44", "2014-10-10 23:04:00", "2014-09-25 08:33:32", "2014-09-25 08:34:41", "2014-09-25 08:35:24", "2014-10-10 23:04:00")
df = data.frame(Incident.ID..,date, stringsAsFactors = FALSE)

df

   Incident.ID..                date
1  INCFI0000029582 2014-09-25 08:39:45
2  INCFI0000029582 2014-09-25 08:39:48
3  INCFI0000029582 2014-09-25 08:40:44
4  INCFI0000029582 2014-10-10 23:04:00
5  INCFI0000029587 2014-09-25 08:33:32
6  INCFI0000029587 2014-09-25 08:34:41
7  INCFI0000029587 2014-09-25 08:35:24
8  INCFI0000029587 2014-10-10 23:04:00
Run Code Online (Sandbox Code Playgroud)

我用这个函数来计算时间差(以秒为单位):

padded.diff = function(x) c(0L, diff(x)) 

df2=within(df, {
  date        = strptime(date, format="%Y-%m-%d %H:%M:%S")
  date.diff   = padded.diff(as.numeric(date)) …
Run Code Online (Sandbox Code Playgroud)

datediff r

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

转换Hive datediff()到几个月

使用Hive时,可以返回select datediff('date1','date2') from table返回两个日期之间天数的值的功能.如果我对这两个日期之间的月份感兴趣怎么办?

一种选择是将结果除以30.5,因为平均月数大约为30.5天,但是当考虑大的日期范围时,这肯定会产生不准确.

您是否知道以标准SQL(理想情况下为HIVE)语法以类似方式检索月数(而不是天数)的方法?

sql hadoop hive datediff date

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

获取第一行和最后一行之间的时间差

我的表结构是这样的

id date         Time                userid

17  2017-01-22  05:08:09.0000000    836232017
16  2017-01-22  05:08:05.0000000    836232017
11  2017-01-22  05:06:40.0000000    836232017
10  2017-01-22  05:06:38.0000000    836232017
7   2017-01-22  05:06:31.0000000    836232017
Run Code Online (Sandbox Code Playgroud)

我需要获取相应用户 ID 和日期的第一个值和最后一个值之间的时间差。例如:用户 ID 836232017 的 datediff 介于 '05:08:09.0000000' 和 '05:06:31.0000000' 之间。请为此提供解决方案。

sql-server datediff date-difference

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

Pyspark:两个日期之间的差异(Cast TimestampType、Datediff)

有一个包含事件和特定时间戳的表。我很难计算使用 Pyspark 2.0 API 过去的天数。当时间戳遵循另一种格式(yyyy-mm-dd)时,我设法做同样的事情

    +-------------------+------------------------+----------+--------------+
     | first_booking_date|first_booking_date_clean|  today   |customer_since|
    +-------------------+------------------------+----------+--------------+
     |02-06-2011 20:52:04|              02-06-2011|02-06-2011|          null|
     |03-06-2004 18:15:10|              03-06-2004|02-06-2011|          null|
Run Code Online (Sandbox Code Playgroud)

我尝试了以下操作(没有任何效果):-使用字符串操作提取日期并使用 datediff-转换为时间戳,然后提取 dd:MM:yy(->result null)-我更喜欢使用 pyspark 命令而不是使用 sql 进行任何其他转换

非常感谢帮助,最好,非常感谢!!!

编辑:这是一个不起作用的例子:

import datetime
today = datetime.date(2011,2,1)
today = "02-06-2011"
first_bookings = first_bookings.withColumn("today",F.lit(today))
first_bookings = first_bookings.withColumn("first_booking_date_clean",F.substring(first_bookings.first_booking_date, 0, 10))
first_bookings = first_bookings.withColumn("customer_since",F.datediff(first_bookings.today,first_bookings.first_booking_date_clean))
Run Code Online (Sandbox Code Playgroud)

timestamp datediff pyspark

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

EFCore 2.2 GroupBy Sum and DateDiff

I'm trying to translate the following SQL in to an EF Core query and I'm getting warnings that GroupBy and Sum will be evaluated locally. Is there anyway currently to write this that it will fully translate to SQL?

SELECT UserId, ST.StatusId, SUM(DATEDIFF(MINUTE, StartDate, ISNULL(EndDate,GETDATE()))) AS Time
FROM StatusTransaction ST
WHERE
    TeamManagerId = 1
    AND StartDate >= N'01-01-2019'
    AND ISNULL(EndDate,GETDATE()) <= N'01-02-2019'
GROUP BY UserId, ST.StatusId
ORDER BY UserId
Run Code Online (Sandbox Code Playgroud)

And these are the EF queries I've used:

var efFunction = …
Run Code Online (Sandbox Code Playgroud)

linq linq-to-entities group-by datediff ef-core-2.2

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

如何在 pyspark 中以秒为单位获取 datediff()?

我已经尝试过 ( this_post ) 中的代码,但无法获得以秒为单位的日期差异。我只是在下面的 'Attributes_Timestamp_fix' 和 'lagged_date' 列之间使用 datediff()。任何提示?在我的代码和输出下方。

eg = eg.withColumn("lagged_date", lag(eg.Attributes_Timestamp_fix, 1)
.over(Window.partitionBy("id")
.orderBy("Attributes_Timestamp_fix")))

eg = eg.withColumn("time_diff", 
datediff(eg.Attributes_Timestamp_fix, eg.lagged_date))

        id      Attributes_Timestamp_fix time_diff
0   3.531611e+14    2018-04-01 00:01:02 NaN
1   3.531611e+14    2018-04-01 00:01:02 0.0
2   3.531611e+14    2018-04-01 00:03:13 0.0
3   3.531611e+14    2018-04-01 00:03:13 0.0
4   3.531611e+14    2018-04-01 00:03:13 0.0
5   3.531611e+14    2018-04-01 00:03:13 0.0
Run Code Online (Sandbox Code Playgroud)

python datediff apache-spark pyspark

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