我试图在两个日期之间获得分钟差异,让我们说:
来自
2/23/2017 17:00:00 pm。
直到
2/24/2017 02:00:00 am。
哪种方法最好?
我想要做类似的事情:
SELECT datediff (minute, START, END) from TIME;
但结果我得到了:
-900分钟。
我的TIME表只包含那些列(ID_TIME,START,END),并且不包括日期(MM / DD / YYYY),只包括START和END小时。
更新
也许这不是正确的方法,但是,我通过简单的算术运算改变了-900
:
<(>(( - 900)* - 1)-360)= 540.
这是我的代码:
$time2=sqlsrv_fetch_array($stmt, SQLSRV_FETCH_BOTH);
echo "time 2: ".((($time2[0])*-1)-360)."<br>";
如果有一种方法可以在没有算术运算的情况下进行,我将不胜感激
答案 0 :(得分:0)
我尝试了以下内容并得到了540。
declare @Start datetime
declare @End datetime
set @Start = '2017-2-23 17:00:00'
set @End = '2017-2-24 2:00:00'
select datediff(minute, @Start, @End)
也许打印出开始日期和结束日期会很有用吗?
SELECT datediff (minute, START, END), START, END from TIME;
答案 1 :(得分:0)
您使用的数据类型包含表格中的日期时间信息?在下面的示例中,您可以看到您的方法是如何正确的,并且我在所有这些示例中都收到了结果540.
Dim startInfo As New ProcessStartInfo
startInfo.Verb = "runas"
startInfo.FileName = "subprocess-elevated.exe"
startInfo.Arguments = "arg1 arg2 arg3"
startInfo.WorkingDirectory = Environment.CurrentDirectory
startInfo.WindowStyle = ProcessWindowStyle.Hidden
startInfo.CreateNoWindow = True
Dim p As Process = New Process()
p.StartInfo = startInfo
p.StartInfo.UseShellExecute = False
p.StartInfo.RedirectStandardOutput = True
p.StartInfo.RedirectStandardError = True
p.Start()
Console.WriteLine(p.StandardOutput.ReadToEnd)
Console.WriteLine(p.StandardError.ReadToEnd)
p.WaitForExit()