[mysql] MySQL의 DATETIME 필드에서 날짜 만 선택하는 방법은 무엇입니까?

으로 설정된 MySQL 데이터베이스에 테이블이 DATETIME있습니다. SELECT이 테이블에는 DATE까지만 필요 하며 시간은 제외됩니다.

어떻게 할 SELECT특정 열이으로 설정되어있는 경우에도, 단지 날짜와 시간을 우회하여이 테이블에 DATETIME?

지금이야: 2012-01-23 09:24:41

나는 SELECT이것을 위해 만해 야합니다.2012-01-23



답변

SELECT DATE(ColumnName) FROM tablename;

MySQL DATE () 함수 에 대해 자세히 알아보십시오 .


답변

date_format을 사용할 수 있습니다.

select DATE_FORMAT(date,'%y-%m-%d') from tablename

시간대

sql2 = "SELECT DATE_FORMAT(CONVERT_TZ(CURDATE(),'US/Central','Asia/Karachi'),'%Y-%m-%d');"


답변

select DATE(time) from appointment_details날짜에만 사용할 수 있습니다

또는

select TIME(time) from appointment_details시간에만 사용할 수 있습니다


답변



오늘 사용해보십시오 :

SELECT * FROM `tbl_name` where DATE(column_name) = CURDATE()

선택한 날짜 :

SELECT * FROM `tbl_name` where DATE(column_name) = DATE('2016-01-14')


답변

MYSQL에는 DATE_FORMAT (date, format) 이라는 함수가 있습니다 . 귀하의 경우 선택 문은 다음과 같습니다.

SELECT DATE_FORMAT(dateTimeFieldName,"%a%m%Y") as dateFieldName FROM table_name

Mysql DATE 및 TIME 함수에 대한 자세한 내용을 보려면 여기를 클릭하십시오.


답변

간단히 할 수 있습니다

SELECT DATE(date_field) AS date_field FROM table_name


답변

나는 일을 시도 SELECT DATE(ColumnName)하지만 이것이 작동하지 않습니다 에 대한 TIMESTAMP 그들이 UTC에 저장되며 UTC 날짜 대신 현지 날짜로 변환하는 데 사용되기 때문이다. 내 시간대의 특정 날짜에있는 행을 선택해야했기 때문에이 다른 질문에 대한답변을이 질문에 대한 Balaswamy Vaddeman의 답변결합하여 다음을 수행했습니다.

날짜를 다음과 같이 저장하는 경우 DATETIME

그냥 해 SELECT DATE(ColumnName)

날짜를 다음과 같이 저장하는 경우 TIMESTAMP

아직 로드 하지 않은 경우 시간대 데이터를 MySQL에로드합니다 . Windows 서버의 경우 이전 링크를 참조하십시오. Linux, FreeBSD, Solaris 및 OS X 서버의 경우 다음을 수행합니다.

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

그런 다음 다음과 같이 쿼리 형식을 지정합니다.

SELECT DATE(CONVERT_TZ(`ColumnName`, 'UTC', 'America/New_York'))

WHERE다음과 같이 쿼리 의 일부에 넣을 수도 있습니다 (하지만 해당 열의 인덱스는 작동하지 않습니다).

SELECT * FROM tableName
WHERE DATE(CONVERT_TZ(`ColumnName`, 'UTC', 'America/New_York')) >= '2015-02-04'

(분명히 America/New_York현지 시간대로 대체 하십시오.)


이에 대한 유일한 예외는 현지 시간대가 GMT이고 현지 시간이 UTC와 동일하기 때문에 일광 절약 시간제를 사용하지 않는 경우입니다.