Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL Server组合日期和时间,然后比较_Mysql_Sql_Sql Server_Datetime - Fatal编程技术网

Mysql SQL Server组合日期和时间,然后比较

Mysql SQL Server组合日期和时间,然后比较,mysql,sql,sql-server,datetime,Mysql,Sql,Sql Server,Datetime,您好,我正在尝试根据日期和时间列查询sql数据库中的记录。我想选择超过特定日期的所有记录。这是我试过的 SELECT * FROM `table` WHERE status = 1 AND odate >= ? AND otime > ?; 这将不起作用,因为即使日期值更大,时间也必须更大。我不知道如何才能做到这一点?我正在使用MS SQL 这是一个测试用例 数据库记录|| 日期:12/20/2013 时间:下午4:55:00 传递参数|| 日期:12/15/2013 时间:下午6

您好,我正在尝试根据日期和时间列查询sql数据库中的记录。我想选择超过特定日期的所有记录。这是我试过的

SELECT * FROM `table` WHERE status = 1 AND odate >= ? AND otime > ?;
这将不起作用,因为即使日期值更大,时间也必须更大。我不知道如何才能做到这一点?我正在使用MS SQL

这是一个测试用例

数据库记录|| 日期:12/20/2013 时间:下午4:55:00

传递参数|| 日期:12/15/2013 时间:下午6:13:00

即使odate>日期,otime也不>时间

所以我的问题是

AND odate >= ? AND otime > ?;

失败。

以下是获取今天日期的方法:

SELECT CONVERT(VARCHAR(10), GETDATE(), 101) AS [MM/DD/YYYY]
以下是获取当前时间的方式:

SELECT CONVERT(VARCHAR(8), GETDATE(), 108)
将这些应用于表中的字段。另外,我也不知道,但看起来你的DateTime字段叫做date?这是一个保留字,当你使用它时会给你带来麻烦。如果这是真的,并且您无法更改它,那么您需要将它放在如下括号中:[date],否则它将尝试解析日期,而不是提取字段的值。

如果odate和otime都是数据类型datetime,只需将日期和时间加在一起即可

Where odate + otime > ?;
如果它们不是数据类型datetime,那么只需首先将它们转换为datetime即可


请参阅。

为什么不将数据保存在DATETIME列中?这是MySQL还是Microsoft?在这两种情况下,都显示示例数据,解释这些列上使用的数据类型。@Mureinik这不是我的sql db可以操作的-显然,这两种数据类型都是DateTime。但otime不存储日期部分,只存储time.OP。为了澄清阿格里佐的问题,MySQL和SQL Server是两个不同的RDBMS产品,分别由Oracle和Microsoft两家公司拥有。几乎所有的RDBMS供应商都有专有的语言特性,因此了解您使用的是哪种RDBMS是很重要的。我无意中将它命名为odate。我对获取日期/时间值不太感兴趣。我想通过比较2个DateTime列odate otime与特定日期和时间值来选择*行。通过这种方式,我可以获得超过某个日期的所有行,例如,从表中选择*,其中status=1,odate>=CONVERTVARCHAR10,101为[MM/DD/YYYY]和otime>?;隐马尔可夫模型。。。我不确定我们是否在同一页上。比较这些值不是我面临的问题。问题出在时间上。odate>=?将返回所有日期更大的行,这将100%正常工作。现在,如果我想更具体地比较日期和时间,它将失败。我不明白时间从何而来。您将时间存储在一个字段中,然后将时间作为变量插入?或者,您正在将其与当前时间进行比较?只有在日期相同的情况下,才应比较时间。也许你需要把它编成一个案例陈述?