带有datetime的SQL SELECT语句错误

带有datetime的SQL SELECT语句错误,sql,datetime,select,Sql,Datetime,Select,datetime字段的语句有问题: MyDB: 当我运行以下语句时 SELECT * FROM myTable WHERE ('datetime' > '2011-04-28 21:00:00') SELECT * FROM myTable WHERE ('datetime' = '2011-04-28 21:27:04') SELECT * FROM myTable WHERE ('datetime' > '2011-04-28 21:00:00') AND

datetime字段的语句有问题:

MyDB:

当我运行以下语句时

SELECT * 
FROM myTable 
WHERE ('datetime' > '2011-04-28 21:00:00')
SELECT * 
FROM myTable 
WHERE ('datetime' = '2011-04-28 21:27:04')
SELECT * 
FROM myTable 
WHERE ('datetime' > '2011-04-28 21:00:00')
    AND ('datetime' < '2011-04-29 21:00:00')
我得到了所有的测试1和测试2

当我运行此语句时

SELECT * 
FROM myTable 
WHERE ('datetime' > '2011-04-28 21:00:00')
SELECT * 
FROM myTable 
WHERE ('datetime' = '2011-04-28 21:27:04')
SELECT * 
FROM myTable 
WHERE ('datetime' > '2011-04-28 21:00:00')
    AND ('datetime' < '2011-04-29 21:00:00')
我什么也得不到

当我运行以下语句时

SELECT * 
FROM myTable 
WHERE ('datetime' > '2011-04-28 21:00:00')
SELECT * 
FROM myTable 
WHERE ('datetime' = '2011-04-28 21:27:04')
SELECT * 
FROM myTable 
WHERE ('datetime' > '2011-04-28 21:00:00')
    AND ('datetime' < '2011-04-29 21:00:00')
选择*
从myTable
其中('datetime'>'2011-04-28 21:00:00')
和(“日期时间”<'2011-04-29 21:00:00')
我什么也得不到


为什么?

您将字段名“datetime”放在引号中,MySQL将其视为字符串,而不是列

SELECT * FROM myTable WHERE datetime > '2011-04-28 21:00:00';

您是否真的将
datetime
列名放在单引号中?如果是,则表示将字符串
'datetime'
与字符串
'2011-04-28 21:00:00'
进行比较,这没有多大意义。在SQL中,如果某个内容用单引号括起来,它通常是字符串文字

您是否尝试过:

SELECT * FROM myTable WHERE datetime > '2011-04-28 21:00:00'
或者更可能:

SELECT *
FROM myTable
WHERE datetime > to_date('2011-04-28 21:00:00','YYYY-MM-DD HH24:MI:SS');

注意:
to_date
函数和格式字符串是特定于Oracle的,您没有指定要使用的数据库,这些函数往往是特定于db的

您正在进行字符串比较,即将字符串“日期时间”与特定日期进行比较

将您的查询更改为

...WHERE ([datetime] = '2011-04-28 21:27:04')

删除列名周围的引号:

SELECT * FROM myTable WHERE (datetime > '2011-04-28 21:00:00')
在查询中,您正在将
字符串
“datetime”与另一个
字符串
(由数字组成)进行比较


以字母数字表示,数字在字母之前,因此“datetime”字符串大于您要比较的数字日期字符串。

您确定您的datetime字段是real datetime字段,而不是varchar吗?您使用的数据库是什么?+1实际上每个数据库管理系统都将
'datetime'
视为字符串文字,将
datetime
视为列名。