标签: datediff

Oracle相当于SQL Server/Sybase DateDiff

我们现在使用NHibernate连接到我们软件安装位置的不同数据库.所以我将许多SQL程序移植到Oracle.

SQL Server有一个很好的函数叫DateDiff,它接受一个日期部分,startdate和enddate.

日期部分示例是日,周,月,年等..

什么是Oracle等价物?

我还没有找到一个我必须创建自己的版本吗?

(由Mark Harrison更新)有几个很好的答案可以解释Oracle日期算术.如果你需要Oracle datediff(),请参阅爱因斯坦的回答.(我需要这样来保持Sybase和Oracle之间的spme SQL脚本兼容.)请注意,此问题同样适用于Sybase.

sql sql-server oracle sybase datediff

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

T-SQL则DateDiff - 由"全个小时前"分区,而不是"时代分钟后变成00,因为"

我有一个时间戳表,我想这个表划分为长达一小时的间隔,起始于现在和倒退了几个小时.我无法得到我需要与T-SQL的结果DATEDIFF功能,因为它计算的时间分针经过12两个日期之间的-我想他们的分针传递次数它现在之间时间戳,现在.

在T-SQL中有一种直接的方法吗?

更新: 为了应对的意见,这里的一些样本数据,目前我使用的查询和我得到的结果,以及我想要的结果.

样本数据:

TimeStamp
*********
2010-07-20 11:00:00.000
2010-07-20 10:44:00.000
2010-07-20 10:14:00.000
2010-07-20 11:00:00.000
2010-07-20 11:40:00.000
2010-07-20 10:16:00.000
2010-07-20 13:00:00.000
2010-07-20 12:58:00.000
Run Code Online (Sandbox Code Playgroud)

当前查询:

SELECT TimeStamp, DATEDIFF(HOUR, TimeStamp, CURRENT_TIMESTAMP) AS Diff FROM ...
Run Code Online (Sandbox Code Playgroud)

结果:

    TimeStamp                   Diff
    *********                   ****
    2010-07-20 11:00:00.000     2
    2010-07-20 10:44:00.000     3
    2010-07-20 10:14:00.000     3
    2010-07-20 11:00:00.000     2
    2010-07-20 11:40:00.000     2
    2010-07-20 10:16:00.000     3
    2010-07-20 13:00:00.000     0
    2010-07-20 12:58:00.000     1

我宁愿拥有的东西:

    -- The time is now, for the sake of the example, 13:40

    TimeStamp …

t-sql sql-server datetime datediff

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

PHP在开始日期和结束日期之间获取天数

如果我有两个变量$startDate="YYYYmmdd"$endDate="YYYYmmdd",我怎么可以让他们之间的天数,请?

谢谢.

php datediff date

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

在SQL中与Datediff战斗

我正在用SQL编写一个小查询,并且正在讨论一个似乎有人必须遇到的问题.我想找到两个日期之间的月数.我正在使用像......这样的表达式

DATEDIFF(m,{firstdate},{seconddate})
Run Code Online (Sandbox Code Playgroud)

但是我注意到这个函数计算了日期越过月度阈值的时间.在例子中......

DATEDIFF(m,3/31/2011,4/1/2011) will yield 1  
DATEDIFF(m,4/1/2011,4/30/2011) will yield 0 
DATEDIFF(m,3/1/2011,4/30/2011) will yield 1
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何找到两个日期之间的月份更多 - 所以基于时间过去然后时间超过月度门槛?

sql datediff

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

以天为单位计算SQL中的DateDiff:小时:分钟:秒格式

我目前正在编写一个SQL脚本来计算两个日期之间的差异,它会给我DD:HH:MI:SEC格式的结果.示例:日期1:7/30/12 4:00 PM日期2:5/4/12 10:31 AM

结果应该是87:05:29:00

你能为这个剧本提供帮助吗?此致,Arjun

sql datediff

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

在HH:MM格式php中获得时间差异

我怎么能得到这个输出

HH:MM格式?

 $to_time = strtotime("2008-12-13 10:42:00");  <--AM
 $from_time = strtotime("2008-12-14 8:21:00");  <-- PM
 $stat = round(abs($to_time - $from_time) / 60,2). "min";
Run Code Online (Sandbox Code Playgroud)

我从这里得到的是1299分钟

但我无法弄清楚如何使其输出

21H:41米

php time datediff

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

查找日期是否超过另一个日期

我无法弄清楚为什么这个VB.net代码不起作用..

我要做的是if value1 > value2然后显示一个消息框说过期其他显示消息框说没有过期.

If "4-3-13 10:54:22" > "15-3-13 12:23:30" Then
    MsgBox("Expired")
Else
    MsgBox("Not Expired")
End If
Run Code Online (Sandbox Code Playgroud)

每次它出现说过期甚至知道它不应该.

当我从改变它15-3-13 12:23:301-3-13 12:23:30它仍然说过期.

如果我将我的代码更改为:

If "4-3-13 10:54:22" < "15-3-13 12:23:30" Then
    MsgBox("Not Expired")
Else
    MsgBox("Expired")
End If
Run Code Online (Sandbox Code Playgroud)

它仍然返回错误.

我如何做到这样:

DATE1 = 4-3-13 10:54:22

DATE2 = 15-3-13 12:23:30


IF DATE1 > DATE2 THEN
   Expired
else
   Not Expired
Run Code Online (Sandbox Code Playgroud)

应该返回"未过期"

任何人都能帮忙..我不能工作吗?

vb.net datediff date

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

给定开始日期,结束日期和今天(),如何计算任务完成百分比

我有一个开始日期,结束日期和%完成列.通过在%列中手动输入数字,表示任务的条形图将被着色.我想要做的不是代表%完成,而是想显示从今天开始的结束日期之前剩下多少时间.

      Start        End       % Time remaining from TODAY()
i.e. 12/01/2014   03/15/2015   (End date has not yet occurred)
     12/29/2014   12/29/2014   (Task was started and finished this day)
Run Code Online (Sandbox Code Playgroud)

excel datediff excel-formula

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

触发RAISERROR和ELSE案例问题

我正在尝试编写一些代码,这些代码需要两个单独的列(一个月和一年)。从那里,我希望它查看输入的数字是否已经通过。如果它们已通过,则导致错误通过并停止事务。否则,我希望它继续并将新信息插入表中。我知道我即将使它起作用,但是我似乎无法启动RAISERROR。我确信这与我还很陌生,我遗漏了一些小细节。

目前,我将这两个月用作变量,并制作了第三个变量以将其他两个变量转换为正确的日期时间格式。然后,我使用datediff函数尝试查看它是否已通过这种方式。无济于事。即使卡片日期较旧,我仍会继续执行插入功能。

USE AdventureWorks2012
GO

CREATE TRIGGER BadCreditCardDate
ON Sales.CreditCard
INSTEAD OF INSERT
AS
Begin
DECLARE @ExpMonth tinyint,
        @ExpYear smallint,
        @ExpMonthYear datetime

SELECT  @ExpMonth=ExpMonth, 
        @ExpYear=ExpYear,
        @ExpMonthYear = @ExpYear + '-' + @ExpMonth + '-00' 
FROM INSERTED
    IF
    DATEDIFF(MONTH,@ExpMonthYear,GETDATE()) < 0
    BEGIN
        RAISERROR ('The Credit Card you have entered has expired.' ,10,1)
        ROLLBACK TRANSACTION
    END 

ELSE    
Begin
    INSERT INTO CreditCard (CardType, CardNumber, ExpMonth, ExpYear, ModifiedDate)
    Select CardType, CardNumber, ExpMonth, ExpYear, ModifiedDate FROM inserted
END
End
Run Code Online (Sandbox Code Playgroud)

sql-server triggers datediff raiserror

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

如何使用PHP计算两个字符串日期的差异?

我有两个日期变量:

$dnow = "2016-12-1";
$dafter = "2016-12-11";
Run Code Online (Sandbox Code Playgroud)

我想计算这两个日期的差异,这两个日期是字符串格式,所以我该如何计算?我用了

date_diff($object, $object2)
Run Code Online (Sandbox Code Playgroud)

但它期待两个日期对象,我有String格式的日期,使用后date_diff我得到以下错误

消息:类DateInterval的对象无法转换为字符串.

php string datediff date

5
推荐指数
2
解决办法
4138
查看次数

标签 统计

datediff ×10

date ×3

php ×3

sql ×3

sql-server ×3

datetime ×1

excel ×1

excel-formula ×1

oracle ×1

raiserror ×1

string ×1

sybase ×1

t-sql ×1

time ×1

triggers ×1

vb.net ×1