将Oracle Date与C#DateTime进行比较

esa*_*ncy 4 c# oracle datetime

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

Tri*_*dus 12

您可以使用Oracle TO_DATE函数.

WHERE someDateColumn <= TO_DATE(c#_date, 'YYYY/MM/DD')
Run Code Online (Sandbox Code Playgroud)

对于c#日期(请参阅自定义日期和时间字符串):

DateTime.Now.ToString("yyyy/MM/dd")
Run Code Online (Sandbox Code Playgroud)

如果要添加小时/分钟/秒,则可以相应地进行修改.

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

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

在家,所以我不能运行它,但这应该工作.

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

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

如果你想使用特定日期而不是DateTime.Now,只需将变量保存在那里.