我在下面有一个简单的选择查询,它从当前服务器date
"SELECT * FROM tablename WHERE DATE_SENT <= SYSDATE - 1";
我的Oracle服务器和应用程序托管在不同的服务器上,时区不同。以上查询在Oracle SQL Developer IDE
中执行时获取记录,但在应用程序中使用时不会获取任何记录,如下所示:
strQuery="SELECT * FROM tablename WHERE DATE_SENT <= SYSDATE - :CHECK_CRITERIA";
OracleCommand objCommand = new OracleCommand(strQuery, objConnection);
objCommand.Parameters.Add("CHECK_CRITERIA", OracleDbType.Decimal).Value = decCheckCriteria;
OracleDataReader objDRVendorRecords = objCommand.ExecuteReader();
if (objDRVendorRecords.HasRows)
{
....
....
....
}
CHECK_CRITERIA
将始终为1。
调试时,我们发现 Sysdate
为我们提供了系统日期,而不是服务器日期。
我的问题是
sysdate
未返回数据库服务器日期的原因 而是为什么它返回当前系统日期?