MYSQL Datetime作为varchar以及如何仅显示年份

MYSQL Datetime作为varchar以及如何仅显示年份,mysql,sql,datetime,Mysql,Sql,Datetime,我有一个应用程序,其中Musicalbums的发布日期作为Varchar保存到MySQL数据库中(我对此没有影响),因此它显示的日期类似于(2014-09-11)。我如何才能使发布日期只显示为(2014)?我必须将其转换为DATETIME 我的MySQl查询如下所示: SELECT products.pro_id, products.title AS album_title, products.genre AS album_genre,

我有一个应用程序,其中Musicalbums的发布日期作为
Varchar
保存到MySQL数据库中(我对此没有影响),因此它显示的日期类似于(2014-09-11)。我如何才能使发布日期只显示为(2014)?我必须将其转换为
DATETIME

我的MySQl查询如下所示:

    SELECT products.pro_id, 
           products.title AS album_title, 
           products.genre AS album_genre, 
           products.coverarttoenailurl AS cover_image, 
           products.ccws_pro_id AS product_upc, 
           track_title, 
           track_duration,  
           album_id, 
           physicalReleaseDate, 
           digitalReleaseDate 
   FROM products 
   INNER JOIN track_albumn_information 
   ON products.ccws_pro_upc = track_albumn_information.product_upc 
   AND track_albumn_information.artist_id ='".$artist_id."' 
   ORDER BY physicalReleaseDate, digitalReleaseDate DESC
相关字段为
physicalReleaseDate
digitalReleaseDate


请帮助任何人…

试试这个…使用mysql的年份函数作为参考


因为它是varchar列,所以使用LEFT函数

LEFT(physicalReleaseDate,4)
可以使用LEFT()从字符串的左侧返回指定数量的字符,即

LEFT(digitalReleaseDate,4)

LEFT(digitalReleaseDate,4)
YEAR(STR_TO_DATE(datecolumn,'%Y-%m-%d'))
SUBSTR(physicalReleaseDate, 1, 4)
SUBSTR(digitalReleaseDate, 1, 4)