标签: datetime-comparison

如何只比较EF中DateTime的日期组件?

我有两个日期值,一个已存储在数据库中,另一个由用户使用DatePicker选择.用例是从数据库中搜索特定日期.

先前在数据库中输入的值始终具有12:00:00的时间分量,其中从选择器输入的日期具有不同的时间分量.

我只对日期组件感兴趣,并且想要忽略时间组件.

在C#中进行这种比较的方法有哪些?

另外,如何在LINQ中执行此操作?

更新:在LINQ to Entities上,以下工作正常.

e => DateTime.Compare(e.FirstDate.Value, SecondDate) >= 0
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-entities entity-framework datetime-comparison

115
推荐指数
8
解决办法
14万
查看次数

golang中的日期/时间比较

在Golang中进行日期比较有什么选择吗?我必须根据日期和时间对数据进行排序 - 独立.因此,我可以允许在一系列日期内发生的对象,只要它也在一定范围内发生.在这个模型中,我不能简单地选择最早的日期,最年轻的时间/最晚的日期,最新的时间和Unix()秒来比较它们.我真的很感激任何建议.

最后,我写了一个时间解析字符串比较模块来检查时间是否在一个范围内.然而,这并不顺利; 我有一些差距问题.我会在这里发布,只是为了好玩,但我希望有更好的时间比较方式.

package main

import (
    "strconv"
    "strings"
)

func tryIndex(arr []string, index int, def string) string {
    if index <= len(arr)-1 {
        return arr[index]
    }
    return def
}

/*
 * Takes two strings of format "hh:mm:ss" and compares them.
 * Takes a function to compare individual sections (split by ":").
 * Note: strings can actually be formatted like "h", "hh", "hh:m",
 * "hh:mm", etc. Any missing parts will be added lazily.
 */
func timeCompare(a, b string, …
Run Code Online (Sandbox Code Playgroud)

datetime go datetime-comparison

83
推荐指数
4
解决办法
11万
查看次数

如何在EF查询中执行日期比较?

请帮忙.我试图弄清楚如何在linq查询中使用DATE或DATETIME进行比较.

示例:如果我想要在今天之前启动的所有员工姓名,我会在SQL中执行以下操作:

SELECT EmployeeNameColumn
FROM EmployeeTable
WHERE StartDateColumn.Date <= GETDATE() //Today
Run Code Online (Sandbox Code Playgroud)

但是linq怎么样?

DateTime startDT = //Today

var EmployeeName =  
from e in db.employee
where e.StartDateColumn <= startDT 
Run Code Online (Sandbox Code Playgroud)

上面的WHERE不起作用:

异常详细信息:System.NotSupportedException:LINQ to Entities中不支持指定的类型成员"Date".仅支持初始值设定项,实体成员和实体导航属性.

c# linq datetime linq-to-entities datetime-comparison

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

为什么datetime无法比较?

我的C#单元测试有以下声明:

Assert.AreEqual(logoutTime, log.First().Timestamp);
Run Code Online (Sandbox Code Playgroud)

为什么它失败了以下信息:

Assert.AreEqual failed. Expected:<4/28/2010 2:30:37 PM>. Actual:<4/28/2010 2:30:37 PM>.
Run Code Online (Sandbox Code Playgroud)

他们不一样吗?

更新:

如果您只关注第二个,请使用此选项:

Assert.AreEqual(logoutTime.ToString(), log.First().Timestamp.ToString());

c# unit-testing datetime-comparison

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

安全地比较本地和通用日期时间

我刚刚注意到与DateTime比较似乎是一个荒谬的缺陷.

DateTime d = DateTime.Now;
DateTime dUtc = d.ToUniversalTime();

d == dUtc; // false
d.Equals(dUtc); //false
DateTime.Compare(d, dUtc) == 0; // false
Run Code Online (Sandbox Code Playgroud)

似乎DateTimes上的所有比较操作都无法执行任何类型的智能转换(如果一个是DateTimeKind.Local,一个是DateTimeKind.UTC).除了始终将比较中涉及的两者都转换为utc时间之外,这是一种更好的方法来可靠地比较DateTimes吗?

.net c# .net-4.0 datetime-comparison

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

ZonedDateTime比较:预期:[Etc/UTC]但是:[UTC]

我正在比较似乎相同的两个日期,但它们包含不同的区域名称:一个是Etc/UTC,另一个是UTC.

根据这个问题:UTC和Etc/UTC时区之间有区别吗? - 这两个区域是相同的.但我的测试失败了:

import org.junit.Test;
import java.sql.Timestamp;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import static org.junit.Assert.assertEquals;

public class TestZoneDateTime {

    @Test
    public void compareEtcUtcWithUtc() {
        ZonedDateTime now = ZonedDateTime.now();
        ZonedDateTime zoneDateTimeEtcUtc = now.withZoneSameInstant(ZoneId.of("Etc/UTC"));
        ZonedDateTime zoneDateTimeUtc = now.withZoneSameInstant(ZoneId.of("UTC"));

        // This is okay
        assertEquals(Timestamp.from(zoneDateTimeEtcUtc.toInstant()), Timestamp.from(zoneDateTimeUtc.toInstant()));
        // This one fails
        assertEquals(zoneDateTimeEtcUtc,zoneDateTimeUtc);

        // This fails as well (of course previous line should be commented!)
        assertEquals(0, zoneDateTimeEtcUtc.compareTo(zoneDateTimeUtc));
    }
}
Run Code Online (Sandbox Code Playgroud)

结果:

java.lang.AssertionError: 
Expected :2018-01-26T13:55:57.087Z[Etc/UTC]
Actual   :2018-01-26T13:55:57.087Z[UTC]
Run Code Online (Sandbox Code Playgroud)

更具体地说,我希望,这ZoneId.of("UTC")将等于ZoneId.of("Etc/UTC"),但它们不是!

正如@NicolasHenneaux …

java datetime date datetime-comparison zoneddatetime

13
推荐指数
1
解决办法
5019
查看次数

php比较日期变化的日期

我已经在SO上发现了数百个关于主题的问题和答案,但是,没有一个与我的需求具体相符而且我很难过.

我有一个ymd格式的变量,我需要查看它是否是在前一个日历日创建的(不是之前的24小时,而是在前一个日历日).

即.$ tDate = '12 -05-2';

如果对象创建于2012年5月2日晚上11:59(存储时间),我需要与2012年5月3日上午12:01(当前时间)进行比较,以等于true.

如果对象创建于2012年5月2日晚上11:51(存储时间),我需要比较2012年5月2日晚上11:58(当前时间)等于false.

我知道如果这些存储在MySQL数据库中并从一个字段中提取,MySQL可以很容易地解决这个问题.但是,在这种情况下,该解决方案不是一种选择.

这种比较必须完全在php中完成.

我知道这是一个古怪的问题,但是,嘿,这就是StackOverflow的大师擅长的!期待看到回复!

UPDATE

把它想象成:

    $dTest = '12-05-02';
    $dTest = explode('-',$dTest);
    $dTest2 = date('y-m-d');
    $dTest2 = explode('-',$dTest2);

    if ($dTest[2]<$dTest2[2]){
        echo '<br />Posted Yesterday<br />';
    } else {
        echo '<br />Posted Today<br />';
    }
Run Code Online (Sandbox Code Playgroud)

有更有效的解决方案吗?似乎工作,但我认为必须有一个更优化/优雅的解决方案?

解决了

$tHolder = '12-05-12';
$voteDate = date("y-m-d", strtotime($tHolder));
$today = date("y-m-d", strtotime("today"));

if ($voteDate === $today)
{
   echo "this was today's post";
}
elseif ($voteDate < $today)
{
   echo "this was previous to today";
}
Run Code Online (Sandbox Code Playgroud)

php comparison date datetime-comparison

8
推荐指数
1
解决办法
7547
查看次数

如何在EF中执行日期部分比较

我听说人们说日期时间比较不起作用只是因为时间因素,因为datetime有时间部分.

在SQL中我总是像这样比较日期时间,它工作正常

select * from employee
where convert(varchar,dob,112) > '20111201' // this yyyymmdd format.
Run Code Online (Sandbox Code Playgroud)

我怎么能在LINQ查询中模拟这个?

c# t-sql linq-to-entities entity-framework datetime-comparison

6
推荐指数
2
解决办法
4458
查看次数

如何确定特定时间是否在javascript中的给定时间范围之间

我想在两个时间var open_time和var close_time之间检查var check_val

var open_time  = "23:30";
var close_time = "06:30";
var check_val  ="02:30";
if(Date.parse ( check_val ) > Date.parse ( open_time ) && Date.parse ( check_val ) < Date.parse ( close_time )){
    var flag=1;
} else { 
    var flag=2
}
Run Code Online (Sandbox Code Playgroud)

结果总是其他部分

javascript time date-comparison datetime-conversion datetime-comparison

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

如何在android中比较开始时间和结束时间?

我的问题是如何比较startTime和endTime之间的两个时间,

比较两次.

  1. 开始时间
  2. 时间结束.

我正在使用TimePickerDialogfor fetching时间,我正在使用一个方法传递参数,如long for startTime和endTime,我这样使用,

//Method:
boolean isTimeAfter(long startTime, long endTime) {
    if (endTime < startTime) {
        return false;
    } else {
        return true;
    }
}

String strStartTime = edtStartTime.getText().toString();
String strEndTime = edtEndTime.getText().toString();

long lStartTime = Long.valueOf(strStartTime);
long lEndTime = Long.valueOf(strEndTime);

if (isTimeAfter(lStartTime, lEndTime)) {

} else {

}
Run Code Online (Sandbox Code Playgroud)

得到错误:

java.lang.NumberFormatException: Invalid long: "10:52"
Run Code Online (Sandbox Code Playgroud)

如何比较两次.请建议我.

android datetime-comparison android-timepicker

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