在sql查询中设置日期格式

gijlo24d  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(461)

我从3个不同的表中获取数据(使用内部连接)来创建一个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查询更改日期格式?我无法添加/更改数据库,只能从中提取数据。
数据库中的出生日期格式为英语“dd-mmm-yyyyy”(varchar(50))。我还可以使用变量birthdatetr,即“yyyy-mm-dd”(日期)。
我无法更改数据库的整体语言,因为我还使用丹麦语和英语。所以我得想办法

6tdlim6h

6tdlim6h1#

Date_Format() 文档:
用于日和月名称和缩写的语言由 lc_time_names 系统变量
对于冰岛,locale值为 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')

细节: %d 月日,数字(00..31) %b 缩写月份名称(一月至十二月) %Y 年份,数字,四位数

相关问题