2014-11-07 1 views
1

형식 날짜의 데이터 상자에 필드 시작이 있습니다. 월 및 연도를이 형식으로 추출합니다. mm-yyyy, 다른 모든 열이 필요합니다. Getting only Month and Year from SQL DATE은 월 및 연도를 다음 형식으로 추출합니다. "mm-yyyy"및 모든 열

에 따라

$query='SELECT *, DATEADD(MONTH, DATEDIFF(MONTH, 0, start), 0) AS [start] FROM ... 

그러나 그것은 작동하지 않습니다

나는이 시도. 오류 :

Incorrect parameter count in the call to native function 'DATEDIFF'" 

또한 이후에 계속하는 방법을 모르겠다. SQL Query - Change date format in query to DD/MM/YYYY

그래서 내 생각은 다음과 같습니다 :

Convert(varchar(10),CONVERT(date,DATEADD(MONTH, (DATEDIFF(MONTH, 0, start), 0) AS [start]),106),103) 

을하지만 난 여전히 일을 가지고이 발견했다.

+1

SQL Server 솔루션을 사용하려는 것처럼 보이지만 태그가 정확하면 MySQL을 사용하고있는 것입니다. 날짜/시간 함수는 데이터베이스 시스템이 * 로트 *가 다른 하나의 영역입니다. 따라서 동일한 이름의 함수를 가지고 있어도 같은 일을한다는 보장은 없습니다. –

답변

2

DATE_FORMAT 기능을 사용합니다.

SELECT DATE_FORMAT(start, '%m-%Y') FROM ...; 
+0

형식이 m-yyyy이고 또한 내 쿼리의 끝에 ORDER BY와 간섭하기 때문에 여전히 '0'을 추가해야하는 다른 버전의 가장 좋은 버전입니다 (내 잘못은 ' t 언급) .THX –

+0

@AndiGiga, 당신은 '0'을 추가 할 필요가 없습니다. 'SELECT DATE_FORMAT ('2014-1-2', '% m- % Y')'를 시도하십시오. '01-2014'을 반환합니다. –

+0

나는 다른 솔루션에서 그렇게해야한다는 것을 의미했습니다. 혼란을 드려 죄송합니다. 당신의 솔루션은 완벽합니다. –

0

MySQL 설치를 위해 SQL Server 구문을 사용하고 있습니다. 그것은 작동하지 않습니다. 모든 DB 엔진은 약간 다른 구문과 기능을 가지고 있습니다.

SELECT *, year(start), month(start) 
from your_table 
-1

당신이이 논리를 사용할 수 있습니다 : -

SELECT *, CONCAT(MONTH(start), '-', YEAR(start)) AS START 
FROM TABLE_NAME 
+0

'mm-yyyy' 형식을 제공하지 않습니다. '01-2014'대신 '1-2014'와 같은 것이 있습니다. –

+0

전적으로 동의 함. –

관련 문제