在这里,我需要计算PostgreSQL中两个日期的差异.
在SQL Server中:就像我们在SQL Server中一样,它更容易.
DATEDIFF(Day, MIN(joindate), MAX(joindate)) AS DateDifference;
Run Code Online (Sandbox Code Playgroud)
我的尝试:我正在尝试使用以下脚本:
(Max(joindate) - Min(joindate)) as DateDifference;
Run Code Online (Sandbox Code Playgroud)
问题:
我的方法是否正确?
PostgreSQL中是否有任何函数来计算它?
我使用DATEDIFF函数来过滤本周添加的记录:
DATEDIFF(week, DateCreated, GETDATE()) = 0
Run Code Online (Sandbox Code Playgroud)
而且我注意到星期天星期几开始的假设.但在我的情况下,我宁愿在星期一开始一周的开始.在T-SQL中有可能以某种方式吗?
谢谢!
更新:
下面是一个示例,显示DATEDIFF没有检查@@ DATEFIRST变量,所以我需要另一个解决方案.
SET DATEFIRST 1;
SELECT
DateCreated,
DATEDIFF(week, DateCreated, CAST('20090725' AS DATETIME)) AS D25,
DATEDIFF(week, DateCreated, CAST('20090726' AS DATETIME)) AS D26
FROM
(
SELECT CAST('20090724' AS DATETIME) AS DateCreated
UNION
SELECT CAST('20090725' AS DATETIME) AS DateCreated
) AS T
Run Code Online (Sandbox Code Playgroud)
输出:
DateCreated D25 D26
----------------------- ----------- -----------
2009-07-24 00:00:00.000 0 1
2009-07-25 00:00:00.000 0 1
(2 row(s) affected)
Run Code Online (Sandbox Code Playgroud)
2009年7月26日是星期天,我希望DATEDIFF也在第三栏中返回0.
我有PHP DateDiff的问题,我不明白为什么每个时区返回不同的结果,例如在这种情况下布拉格返回0个月,美国返回1个月.
这个差异以及我如何按预期返回1个月(而不是30天,当我加1个月)?
代码欧洲/布拉格:
date_default_timezone_set("Europe/Prague");
$from = new \DateTimeImmutable('2016-09-01');
$to = $from->add(new \DateInterval('P1M'));
var_dump($from);
var_dump($to);
var_dump($from->diff($to)->m);
var_dump($from->diff($to)->d);
Run Code Online (Sandbox Code Playgroud)
结果欧洲/布拉格:
object(DateTimeImmutable)#1 (3) {
["date"]=>
string(26) "2016-09-01 00:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(13) "Europe/Prague"
}
object(DateTimeImmutable)#3 (3) {
["date"]=>
string(26) "2016-10-01 00:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(13) "Europe/Prague"
}
int(0)
int(30)
Run Code Online (Sandbox Code Playgroud)
-
代码美国/太平洋:
date_default_timezone_set("US/Pacific");
$from = new \DateTimeImmutable('2016-09-01');
$to = $from->add(new \DateInterval('P1M'));
var_dump($from);
var_dump($to);
var_dump($from->diff($to)->m);
var_dump($from->diff($to)->d);
Run Code Online (Sandbox Code Playgroud)
结果美国/太平洋:
object(DateTimeImmutable)#2 (3) {
["date"]=>
string(26) "2016-09-01 00:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(10) "US/Pacific"
}
object(DateTimeImmutable)#4 (3) {
["date"]=>
string(26) …Run Code Online (Sandbox Code Playgroud) 我在变量中有两个日期
$fdate = "2011-09-01"
$ldate = "2012-06-06"
Run Code Online (Sandbox Code Playgroud)
现在我需要它们之间的月份差异.
例如,如果你从明年的09(9月)到06(6月)计算这个答案应该是10 - 结果你会得到10.
我怎么能用PHP做到这一点?
我在Excel中做了一些工作,遇到了一些问题.我正在使用的仪器保存了测量的日期和时间,我可以使用以下格式将这些数据读入Excel:
A B
1 Date: Time:
2 12/11/12 2:36:25
3 12/12/12 1:46:14
Run Code Online (Sandbox Code Playgroud)
我想要做的是找到两个日期/时间戳的差异,以便我可以从数据创建衰减曲线.所以在Excel中,我希望这样做(如果这个例子中的分钟数是错误的,我只是手动快速计算):
A B C
1 Date: Time: Time Elapsed (Minutes)
2 12/11/12 2:36:25 -
3 12/12/12 1:46:14 1436.82
Run Code Online (Sandbox Code Playgroud)
我已经四处寻找并找到了几种时间差异的方法,但他们总是假设日期是相同的.我夸大了我的测量之间的时间,但几天的翻滚是让我感到悲痛的原因.关于如何解决这个问题的任何建议或提示都会很棒.即使我能用十进制格式找到小时或天的日期和时间之间的差异,我也可以通过常数得到多个来得到我的答案.请注意,我有编程和Excel的经验,但请详细说明.我有时会迷失方向.
我试图找出表格中某些字段之间的时间.但是因为我正在使用Postgresql :((我不能使用DATEDIFF函数.我在网上找不到任何明确的指南/教程,它们显示了如何在Postgres中做类似的事情所以我需要帮助做同样的事情但是在Postgres
我假设如果我使用支持DATEDIFF函数的RDBMS,这个查询会有效,所以基本上我的问题是如何更改这个以便它使用Postgresql提供的功能?
SELECT Question.ID,
Question.Status, COUNT (qUpdate.ID) AS NumberofUpdates,
DATEDIFF (Question.LoggedTime,MIN(qUpdate.UpdateTime)) AS TimeBeforeFirstUpdate,
DATEDIFF(Question.LoggedTime, MAX(qUpdate.UpdateTime)) AS TimeBeforeLastUpdate
FROM qUpdate
LEFT JOIN Question ON qUpdate.qID=Question.ID
WHERE Question.Status = 'closed' AND qUpdate.Update NOT NULL
GROUP BY Question.Status, Question.ID, Question.LoggedTime;
Run Code Online (Sandbox Code Playgroud)
如果您需要更多信息或任何澄清,我会尽快回应.
我遇到了这个问题,我不知道该怎么做......他们有相同的格式
$ date_expire ='2014-08-06 00:00:00';
$ date1 = date("Ymd G:i:s"); $ date2 = date_create($ date_expire);
$ diff = date_diff($ date1,$ date2); //这行有误
我试图将日期,小时和分钟(如1天,6小时,17分钟)中两个给定日期的差异表示为SQLite查询输出.我有entryin和entryout作为datetimeSQLitedatabase中的字段.我试过的所有组合julianday,并strftime仍在运行到恶劣天气,但.
我试过了strftime('%d %H:%M', julianday(entryout)-julianday(entryin)).对于一行,值为2011-11-10 11:46,和2011-11-09 09:00.但输出是25 14:46代替01 02:46.
有人可以帮我解决这个问题,还是指出正确的逻辑呢?提前致谢.
我想过滤数据集以查找特定日期之前的所有日期。具体来说是当前日期前 1 天。
我尝试了下面的代码:
df = df.filter(F.col('date') <= F.current_date() - 1)
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
u"cannot resolve '(current_date() - 1)' due to data type mismatch: differing types in '(current_date() - 1)' (date and int)
Run Code Online (Sandbox Code Playgroud) 我正在尝试做我认为是一个简单的日期差异函数,但由于某种原因,我的单位值被读取为一列(“dd”),所以我不断收到无法解决的列错误
我正在使用 AWS Athena
我的代码是这样的
SELECT "reservations"."id" "Booking_ID"
, "reservations"."bookingid" "Booking_Code"
, "reservations"."property"."id" "Property_id"
, CAST("from_iso8601_timestamp"("reservations"."created") AS date) "Created"
, CAST("from_iso8601_timestamp"("reservations"."arrival") AS date) "Arrival"
, CAST("from_iso8601_timestamp"("reservations"."departure") AS date) "Departure"
, CAST("from_iso8601_timestamp"("reservations"."modified") AS date) "Modified"
, date_diff("dd", CAST("from_iso8601_timestamp"("reservations"."created") AS date), CAST("from_iso8601_timestamp"("reservations"."arrival") AS date)) "LoS"
FROM
"database".reservations
LIMIT 5;
Run Code Online (Sandbox Code Playgroud)
我试图从“创建日期”和“到达日期”中获得天数差异
我已经用 DD,"DD","dd",dd,Day,day,"day" 尝试了 date_diff 并且我得到了同样的错误。