[SQL] SELECT DATEPART 의해 행 ()
SQLSELECT DATEPART 의해 행 ()
나는 기록을 한 달의있는 데이터베이스에서 행을 얻을 필요가있다. 나는이 SELECT를 시도했다 :
$result = mysql_query("SELECT * FROM my_table WHERE DATEPART('month', date_column)=11");
데이터베이스에서 11 월에 날짜가 행의 많은입니다,하지만 난 어떤 결과를 얻을 수 없습니다. 캔 사람의 도움 나? 감사!
해결법
-
==============================
1.MySQL은 더 DATEPART 기능이 없습니다. 대신 사용 MONTH (date_column) 또는 EXTRACT (date_column FROM MONTH).
MySQL은 더 DATEPART 기능이 없습니다. 대신 사용 MONTH (date_column) 또는 EXTRACT (date_column FROM MONTH).
-
==============================
2.
SELECT * FROM my_table WHERE MONTH(date_column)=11
-
==============================
3.당신이 date_column 인덱스 및 성능에 대한 당신이 관심이 있다면이 칼럼을 통해 기능을 적용하지하는 것이 좋습니다. (그것은 또한 올해 포함 렸기 때문에, 당신이 질문을 정확하게이 솔루션이 수행이 anwsers하지 않도록주의)
당신이 date_column 인덱스 및 성능에 대한 당신이 관심이 있다면이 칼럼을 통해 기능을 적용하지하는 것이 좋습니다. (그것은 또한 올해 포함 렸기 때문에, 당신이 질문을 정확하게이 솔루션이 수행이 anwsers하지 않도록주의)
-- For mysql specific: SELECT * FROM my_table WHERE date_column >= '2012-11-01' and date_column < '2012-11-01' + INTERVAL 1 MONTH
(MySQL의 바이올린)
-- For tsql specific: SELECT * FROM my_table WHERE date_column >= '2012-11-01' and date_column < DATEADD(month,1,'2012-11-01')
(전체 바이올린)
-
==============================
4.당신의 DATEPART는 MYSQL에서 작동하지 않는 경우에 당신은 사용할 수 있습니다 :
당신의 DATEPART는 MYSQL에서 작동하지 않는 경우에 당신은 사용할 수 있습니다 :
SELECT * FROM MyTable WHERE MONTH(joinningDate)=MONTH(NOW())-1 and YEAR(joinningDate)=YEAR(NOW());
그것은 지난 달을 MyTable에 삽입 한 모든 레코드를 반환합니다.
from https://stackoverflow.com/questions/13402012/select-row-by-datepart by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 왜 RAND ()는 난수를 생성되지 않는 이유는 무엇입니까? (0) | 2020.06.16 |
---|---|
[SQL] SQL Server의 합계 시간 [중복] (0) | 2020.06.16 |
[SQL] MySQL은 이상 절에 대한 올바른 구문을 사용하여 (0) | 2020.06.15 |
[SQL] 이 성능은 모든 열을 선택하는 나쁜가요? (0) | 2020.06.15 |
[SQL] PDO를 사용하여 결과의 지표로서 열 값을 이용하여 (0) | 2020.06.15 |