2013-06-04 2 views
1
INSERT INTO `empleado` VALUES ('100', 'Alfonso', '1999-11-22', '100', '11'); 
INSERT INTO `empleado` VALUES ('101', 'Encarna', '2001-11-12', '100', '15'); 
INSERT INTO `empleado` VALUES ('102', 'Paco', '1999-10-16', '101', '12'); 
INSERT INTO `empleado` VALUES ('103', 'Juan Carlos', '1999-01-12', '101', '10'); 

, 내 초기 쿼리이었다 - 즉SQL 쿼리 3 용어 날짜

"select nombre,coddep,fecha_ingreso from 
empleado where fecha_ingreso >1999;" 

1999 년 3 기간에 회사에있어 몇 가지 코드를 선택해야하지만, 잘못 그것은 name, coddatetime >1999

+0

두 번째 날짜를 변경 1 월 월은 1 분기되고, 당신은 1999 년 3 분기를 의미합니까? – shahkalpesh

+0

예, jan-april은 – florin

+0

Jan-April의 첫 번째 용어입니까? 4 개월이고 1 분기는 3 개월입니다. – Barmar

답변

1

를 선택하기 때문에이 1999 년 3 사분기에 행을 가져옵니다 :

필드가 아니라 DATE보다 DATETIME 경우
SELECT nombre, coddep, fecha_ingreso 
FROM empleado 
WHERE fecha_ingreso BETWEEN '1999-07-01' AND '1999-09-30' 

, 1999-09-30 12:59:59

+0

감사합니다. 나는 3 번째 기간 "SELECT nombre, coddep, fecha_ingreso를 필요로했기 때문에 날짜를 약간 변경했습니다. empleado에서 fecha_ingreso와 '1999-08-01'그리고 '1999-12-30'" – florin

+0

나는이 대답을 사용하는 것을 선호합니다. date 컬럼의 인덱스를 이용할 수 있기 때문에'YEAR (date)'와'QUARTER (Date)'하지만 이것은'DATETIME'이 아닌'DATE' 컬럼에서만 유효합니다. -09-30 15 : 00 '은 생략 될 것입니다. '> '1999-07-01'AND Fecha_ingreso < '1999-10-01'을 사용하고자합니다. Aaron Bertrand는 BETWEEN을 날짜와 함께 사용하는 것을 싫어하는 것에 대해 논의했습니다 (http://sqlblog.com/blogs/aaron_bertrand/archive/2011/10/19/what-do-between-and-devil-have-in -common.aspx), 나는 그와 동의하는 경향이있다. – GarethD

1
SELECT nombre, coddep, fecha_ingreso 
    FROM empleado 
    WHERE YEAR(fecha_ingreso) = 1999 AND QUARTER(fecha_ingreso) = 3 
;