4
a_id employee_id    date       checkin          checkout
1       1        31-10-2012   09:13:54 AM      05:30:55 PM
2       1        01-11-2012   09:34:39 AM      05:30:55 PM

私は次の出席表を持っています....私はすべてのチェックインとチェックアウト時間を特定の月に取得したいです(例:2012年1月10日から2012年10月31日まで)....私はこのようなものを使用しました

select `employee_id`,`date`,`checkin`,`checkout`
from `attendence` 
where `date` >= '01-10-2012'
    and `date` < '31-10-2012'

今、このクエリの問題は、結果を再調整することですが、翌月の最初の日付です

これはそれが私に与える結果です

 employee_id    date       checkin          checkout
     1        31-10-2012   09:13:54 AM      05:30:55 PM
     1        01-11-2012   09:34:39 AM      05:30:55 PM

上記のクエリで、このような特定の月の結果のみが必要でした

employee_id         date       checkin          checkout
         1        31-10-2012   09:13:54 AM      05:30:55 PM



a_id    int(11) No       
employee_id int(11) No       
date    varchar(15) No       
checkin varchar(32) No       
checkout    varchar(32) No      

plzzzzはみんながここで立ち往生しているのを助けます:(

4

4 に答える 4

12

使用できますDATE_FORMAT

select `employee_id`,`date`,`checkin`,`checkout`
from `attendence` 
where DATE_FORMAT(date, "%m-%Y") = "10-2012"

見るFiddleDemoそれは私のために働く

于 2012-10-31T06:07:02.563 に答える
3

これを試して

select `employee_id`,`date`,`checkin`,`checkout`
from `attendence` 
where `date` BETWEEN  MONTH('01-10-2012')
AND  MONTH( '31-10-2012')

年と月が必要な場合

select `employee_id`,`date`,`checkin`,`checkout`
from `attendence` 
where `date` BETWEEN  MONTH('01-10-2012')
AND  MONTH( '31-10-2012')
AND `date` BETWEEN  YEAR('01-10-2012')
AND  YEAR( '31-10-2012')
于 2012-10-31T06:07:17.070 に答える
0

列とネイティブの日付の比較にはdatetimetypeを使用する必要があります。date

また

これを試して:

select `employee_id`,`date`,`checkin`,`checkout`
from `attendence` 
where DATE(`date`) >= DATE('01-10-2012')
    and DATE(`date`) < DATE('31-10-2012')
于 2012-10-31T06:21:45.223 に答える
0

DATE内の文字列の形式に注意してください。yyyy-MM-ddである必要があります。

select 
    `employee_id`,`date`,`checkin`,`checkout` 
from 
    `attendence` 
where 
DATE(`date`) >= DATE('2012-10-01') 
    and DATE(`date`) < DATE('2012-10-31');
于 2016-02-01T01:14:57.330 に答える