在SQL查询中设置日期格式

时间:2018-12-12 09:54:58

标签: mysql sql

我正在从3个不同的表中获取数据(使用INNER JOIN),以创建一个HTML代码,该代码为我提供一个人的随机肖像照片以及该人的出生日期和死亡日期(请参见此处的结果:https://www.hafdal.dk/legstadaleit/-在墓碑图像下方。

这是我的查询

SELECT CONCAT (
    '<center><img src="https://www.hafdal.dk/tng/andlitsmyndir/',
    tng_media.path,'" alt="',
    tng_media.description,
    '" width="250"><br><a href="https://www.hafdal.dk/legstadaleit/index.php/database/?page=www.hafdal.dk/tng/getperson.php%3FpersonID%3D',
    tng_medialinks.personID,
    '"><b>',
    tng_media.description, 
    '</b><br>', 
    'f. ', 
    tng_people.birthdate, 
    ' - d. ', 
    tng_people.deathdate, 
    '</a></center>') 
FROM `tng_media`   
INNER JOIN tng_medialinks on tng_media.mediaID=tng_medialinks.mediaID  
INNER JOIN tng_people on tng_people.personID=tng_medialinks.personID   
WHERE mediatypeID="11"
ORDER BY RAND() 
LIMIT 1

如何格式化日期,使它看起来像冰岛语,即月份名称用冰岛语显示,并且日期编号和月份名称后面有.?像这样:12. des. 2018

我尝试插入:

DATE_FORMAT (tng_people.birthdate, '%d. %M %Y')

不幸的是,tng_people.birthdate在哪里,但是那行不通。

是否可以通过SQL查询更改日期格式?我无法添加/更改数据库,只能从数据库中提取数据。

数据库中生日的格式为英语(varchar(50))“ dd MMM YYYYY”。我还可以使用变量birthdatetr,即“ YYYY-MM-DD”(日期)。

我无法更改数据库的整体语言,因为我也使用丹麦语和英语。所以我需要弄清楚怎么做

enter image description here

1 个答案:

答案 0 :(得分:1)

来自Date_Format() documentation

  

用于日期和月份名称及缩写的语言是   由lc_time_names系统变量的值

控制

对于冰岛,语言环境值为is_IS。在以下位置查看完整列表:https://dev.mysql.com/doc/refman/5.7/en/locale-support.html

在调用查询之前,您需要设置系统变量:

SET SESSION lc_time_names = 'is_IS';

此外,您的Date_format()指定符字符串需要更改为:

DATE_FORMAT (tng_people.birthdate, '%d. %b. %Y')

Details

  • %d每月的某天,数字(00..31)
  • %b月份的缩写(1月12月)
  • %Y年,数字,四位数