mysql where子句中的datetime问题

时间:2016-12-07 10:19:21

标签: mysql

大家好,我认为这是一个蹩脚的问题,但我无法弄明白为什么?我有一个有三行的表,如下所示。

enter image description here

我用下面的代码查询它。但结果总是包含所有三行!它应该是id为3和4的行吗?

SELECT * 
FROM  `hs_room_slots_tbl` 
WHERE  'from' >=  '2016-12-07 10:00:00'
LIMIT 0 , 30

'from'字段是日期时间字段。我在phpmyadmin查询框中查询它。可能是什么问题?

2 个答案:

答案 0 :(得分:2)

SELECT * FROM  `hs_room_slots_tbl` WHERE  `from` >= '2016-12-07 10:00:00' 

您不会在列名称周围添加引号,因为否则会将其视为字符串

在这种情况下,您必须使用`from`,因为“from”是 mysql关键字

答案 1 :(得分:1)

您的意思是使用backtique转义SELECT * FROM `hs_room_slots_tbl` WHERE `from` >= '2016-12-07 10:00:00' LIMIT 0 , 30 列,而不是使用单引号引用它,如下所示。否则,它将被视为字符串文字而不是列名

#include<iostream>
using namespace std;

class CircularQueue{
    int arr[10], front, rear, size;
    const int max_size=sizeof(arr)/sizeof(int);
public:
    CircularQueue(){ front = rear = size = 0; }

    bool isEmpty(){ return front==rear; } // or simply size == 0

    bool isFull(){ return (rear+1)%max_size == front; } // or simply size == max_size - 1

    void enQueue(int val){
        if( isFull() ){
            cout << "Queue is Full" << endl;
            return;
        }
        arr[rear] = val;
        rear = (rear+1)%max_size;
        size++;
    }
    int deQueue(){
        if( isEmpty() ){
            cout << "Queue is Empty" << endl;
            return -1;
        }
        int ans = arr[front];
        front = (front+1)%max_size;
        size--;
        return ans;
    }

    void display(){
        if( isEmpty() ){
            cout << "nothing to display" << endl;
            return;
        }
        for( int i=0; i<size; i++ ){
            cout<<"-----------"<<endl;
            cout<<"ID is : "<<arr[(i+front)%max_size]<<endl;
            cout<<"-----------"<<endl;
        }
    }

};

int main(){
    CircularQueue ob;
    bool break_loop=false;
    while( !break_loop ){

        cout << "1 Enqueue, 2 Dequeue, 3 Display 4 Quit \nOption = ";
        int input; cin >> input;
        int tmp;
        switch(input){
            case 1 :
                cout << "Enter number " << endl;
                cin >> tmp;
                ob.enQueue(tmp);
                break;
            case 2 :
                tmp = ob.deQueue();
                if( tmp != -1 ) cout << "Element " << tmp << " deleted" <<endl;
                break;
            case 3 :
                ob.display();
                break;
            case 4 :
                break_loop = true;
                break;
            default :
                break;
        }
    }
    return 0;
}
相关问题