1

我使用下面的代码从数据库中的表中检索数据:

$check_sql = 'SELECT personID, name, DATE_FORMAT(persons.birthdate, "%d de %M, %Y"), birthplace, countryID FROM persons WHERE personID = ?';
    if ($stmt->prepare($check_sql)) {
        $stmt->bind_param('i', $pid);
        $stmt->bind_result($personDB, $name, $birthdate, $birthplace, $countryID);
        $stmt->execute();
        $stmt->fetch();
    }

如您所见,同时我使用 DATE_FORMAT() MySQL 函数将“生日”列中的日期格式化为更友好的显示。现在,我想用西班牙语显示月份全名,所以我想插入SET lc_time_names = 'es_ES'到查询中..

我该怎么做???我可以添加SET lc_time_names到 $check_sql 变量吗?

谢谢!!

4

3 回答 3

7
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$mysqli->query("SET lc_time_names = 'es_ES'");
$check_sql = 'SELECT personID, name, DATE_FORMAT(persons.birthdate, "%d de %M, %Y"), birthplace, countryID FROM persons WHERE personID = ?';
        if ($stmt = $mysqli->prepare($check_sql)) {
                $stmt->bind_param('i', $pid);
                $stmt->bind_result($personDB, $name, $birthdate, $birthplace, $countryID);
                $stmt->execute();
                $stmt->fetch();
        }
于 2009-04-20T17:16:59.320 回答
1

另一种选择是返回原始日期/时间,然后用 PHP 对其进行格式化。

在格式化日期之前,您可以使用 PHP 中的 setlocale() 函数来获取西班牙语输出。

这有一个额外的好处,那就是不在 mysql 中运行函数,这可能会更慢。

于 2009-04-20T16:46:31.373 回答
-2
SET lc_time_names = 'es_PE';
SELECT *, DATE_FORMAT(fecha,'%d de') AS dia,
DATE_FORMAT(fecha,'%M  %Y') AS mes
 FROM t_eventos4
于 2019-06-06T16:47:59.030 回答