我正在尝试这个
SELECT DATEDIFF(second,log.start_time,log.end_time)
as seconds
from log
where log.log_id = "some crazy UUID";
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误,因为不DATEDIFF()接受像第二个格式化程序expr.
所以我试过,
SELECT second(DATEDIFF(second,log.start_time,log.end_time))
as seconds
from log
where log.log_id = "some crazy UUID";
Run Code Online (Sandbox Code Playgroud)
但这对格式化也不起作用.
我读过很多关于计算 javascript 中的日期差异的文章和问题,但我找不到我正在寻找的格式。
我不需要几小时、几分钟,或者信不信由你几毫秒……我只需要几天。我正在检查以确保某一天发生在同一天或另一天之后。
日期格式为 2010-10-05
我尝试了这个,但我得到的只是 NaN:
var diff = Math.floor(( Date.parse(end_date) - Date.parse(start_date) ) / 86400000);
Run Code Online (Sandbox Code Playgroud) 如何从GETDATE()功能中减去3个月?
我想要做的是在本月前3个月获得当月的最后一天.因此,如果今天是10.22.2012,我如何从当前日期减去3个月并打印该月的最后一天,所以我希望得到这个日期:07.31.2012?
这是我到目前为止,但它只打印上个月的最后一天:
DATEADD(MILLISECOND, -3,
DATEADD(MONTH, DATEDIFF(MONTH, -4, GETDATE()), 0))
Run Code Online (Sandbox Code Playgroud)
不打印我需要的东西.任何帮助是极大的赞赏.
我想要做的是以下内容:我有 3 列 ( Control_OpenDate, Control_Record Age, Control_Stage2)。插入行后,它将填充Control_OpenDate(01/27/2013) 和Control_RecordAge(计算列,参见公式)。
(datediff(day, [Control_OpenDate], getdate()))
Run Code Online (Sandbox Code Playgroud)
这给出了最新的日期。
一切正常,但我想IF在列Control_Stage2被填充时向计算列添加一个条件,如果没有,不要计算或添加文本......
如何WHERE在上面的公式中添加 -语句?
注意:我将这样的公式直接输入到列属性中,我知道有些查询可以做到这一点,但是有没有办法通过公式来做到这一点。
我已经看过这个答案了,它与我所拥有的非常接近。
这是我的PHP代码:
$start = new DateTime('0:00 first day of previous month', new DateTimeZone('UTC'));
/*
if (isset($_GET['year']) && isset($_GET['month']) && checkdate($_GET['month'], 1, $_GET['year'])) {
$start = DateTime::createFromFormat('Y-m-d', $_GET['year'] . '-' . $_GET['month'] . '-1');
}*/
$middle = DateTime::createFromFormat('U', strtotime('first day of last month', $start->format('U')));
$middle->setTimezone(new DateTimeZone('UTC'));
$end = DateTime::createFromFormat('U', strtotime('first day of 2 months ago', $start->format('U')));
$end->setTimezone(new DateTimeZone('UTC'));
var_dump($start);
var_dump($middle);
var_dump($end);
Run Code Online (Sandbox Code Playgroud)
今天是 8 月 27 日,所以我预计是 7 月 1 日、6 月 1 日和 5 月 1 日。以下是实际输出:
object(DateTime)[1]
public …Run Code Online (Sandbox Code Playgroud) 我试图在假期表中插入一个新的假期,但是我有一个工期列,我想在存储过程中进行计算。我已经使用日期差异来计算日期,但是我想将日期差异声明为变量,然后将变量打印到insert语句的值中。使用下面的语句,我不断收到此错误:在INSERT的SET子句或列列表中多次指定了列名“ StartDate”。一列不能在同一子句中分配多个值。修改该子句以确保一列仅更新一次。如果此语句更新视图或在视图中插入列,则列别名会隐藏代码中的重复项。
CREATE PROCEDURE spRequestHoliday @EmployeeID int,
@StartDate date,
@EndDate date,
@Duration int
/*
Name: spRequestHoliday
Description: Inserts a requested holiday into the holidays table
*/
Run Code Online (Sandbox Code Playgroud)
如
SELECT DATEDIFF(Day,@StartDate,@EndDate) AS DiffDate
BEGIN
INSERT INTO Holidays(EmployeeID, StartDate, EndDate, Duration,StartDate)
VALUES(@EmployeeID, @StartDate, @EndDate, 'DiffDate','PE')
END
Run Code Online (Sandbox Code Playgroud) 我将MySQL用作应用程序的后端。
我想使用JPA条件查询执行以下查询。
SELECT *
FROM table1 t1
WHERE datediff(now(), t1.created) >= 20;
Run Code Online (Sandbox Code Playgroud)
注意:的类型created为TIMESTAMP
我想要条件查询,例如:
CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
// select
CriteriaQuery<Table1> query = cb.createQuery(Table1.class);
// from
Root<Table1> root = query.from(Table1.class);
// where
List<Predicate> predicates = new ArrayList<Predicate>();
// TODO: add expression for datediff(now(), t1.created) >= 20
query.where(cb.and(predicates.toArray(new Predicate[0])));
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
提前致谢。
我想知道是否有其他人遇到过这种情况或知道有关它的信息。
今天是 2014 年 11 月 3 日,如果我检查 2013 年 11 月 5 日是否在去年内,我会得到不同的答案,具体取决于我检查的方式:1 年与 365 天
select now() - '20131105' as diff,
case when now() - '20131105' <= '1 year' then 'within year' else 'not within year' end as yr_check,
case when now() - '20131105' <= '365 days' then 'within 365 days' else 'not within 365 days' end as day_check
2014-11-03 16:27:38.39669-06; 363 days 16:27:38.39669; not within year; within 365 days
Run Code Online (Sandbox Code Playgroud)
好像查询到11月9日的时候,没问题
select now() as right_now, now() - '20131109' …Run Code Online (Sandbox Code Playgroud) 我正试图用PIG减去两个日期.
我有这样的数据:
key_one, activation_date , deactivation_date
(1456,2010-06-14 00:00:00,2011-01-01 00:00:00)
(6524,2015-01-15 00:00:00,2015-02-07 00:00:00)
(1541,2010-07-17 00:00:00,2012-03-07 00:00:00)
我想在deactivation_date和activation_date之间设置日期差异,并在结果中接收'key_one'和'两个日期之间的天数'.
DATA_OUTPUT = foreach MY_DATA generate key_one,
DaysBetween(deactivation_date, activation_date) as days_between_two_dates;
Run Code Online (Sandbox Code Playgroud)
后端错误:执行时出现异常[POUserFunc(名称:POUserFunc(org.apache.pig.builtin.DaysBetween)[long] - scope-231运算符键:scope-231)children:null []]:java.lang.NullPointerException
任何想法,如何解决这个问题?
该DateDiff功能以24小时为单位报告“日间间隔”,当询问一天中的时间变化时发生了什么事之前,这会产生奇怪的结果。
例如,如果我想获取自昨天下午以来的天数,如果还没有整整24小时,则DateDiff将返回0,而在大多数情况下,我问这个问题,我希望将昨天视为1天前,不考虑时间戳。
有没有办法让DateDiff返回日历天数?
Dim date1 As DateTime = #3/1/2017 5:00 PM#
Dim date2 As DateTime = #3/2/2017 10:00 AM#
Dim daysAgo = DateDiff(DateInterval.Day, date1, date2)
Dim msg = String.Format("Last date was {0} day(s) ago on {1}. ", daysAgo, date1.ToShortDateString())
Console.WriteLine(msg) ' Last date was 0 day(s) ago on 3/1/2017.
Run Code Online (Sandbox Code Playgroud)
关于StackOverflow的以下问题无法解决这一细微差别:
datediff ×10
date ×2
datetime ×2
sql ×2
sql-server ×2
.net ×1
apache-pig ×1
criteria-api ×1
formula ×1
java ×1
javascript ×1
jpa ×1
mysql ×1
php ×1
postgresql ×1
t-sql ×1
time ×1
variables ×1
vb.net ×1