【问题标题】:Compare Oracle Date with C# DateTime比较 Oracle Date 和 C# DateTime
【发布时间】:2011-08-27 04:42:36
【问题描述】:

我正在构建一个内联 SQL 查询(无需对此发表评论,我知道它不是最好的方法,而是公司如何做事!)并且我需要将 Oracle DATE 列与 C# DateTime.Now 进行比较。我需要在 DateTime.Now 和列周围进行哪些转换才能使这种比较起作用? (我想比较整个 DateTime 对象而不仅仅是 Date 部分)

【问题讨论】:

    标签: c# oracle datetime


    【解决方案1】:

    您可以使用 Oracle TO_DATE 函数。

    WHERE someDateColumn <= TO_DATE(c#_date, 'YYYY/MM/DD')
    

    对于c#日期(见custom date and time strings):

    DateTime.Now.ToString("yyyy/MM/dd")
    

    如果你想增加小时/分钟/秒,你可以做相应的修改。

    edit - 实际上,既然你提到了整个事情而不仅仅是日期,我会添加它。 :)

    WHERE someDateColumn <= TO_DATE(c#_date, 'YYYY/MM/DD HH24:MI:SS')
    DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")
    

    在家里,所以我无法运行它,但应该可以。

    要使用 where 子句构建字符串,您可以这样做:

    string someQuery = "SELECT * FROM aTable WHERE someDateColumn <=  TO_DATE('" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "', 'YYYY/MM/DD')"
    

    如果您想使用特定日期而不是 DateTime.Now,只需将保存它的变量放在那里即可。

    【讨论】:

    • 所以这样想,我必须在 C# 代码中构建 WHERE 子句,如下所示: string whereClause = DateTime.Now + " > myDate";如何设置?
    • @esastincy 编辑了答案以提供一个例子。
    猜你喜欢
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    相关资源
    最近更新 更多