【问题标题】:Formatting a SQL date into a UK format [duplicate]将 SQL 日期格式化为英国格式 [重复]
【发布时间】:2013-04-08 11:44:12
【问题描述】:

我有以下 SQL 查询,我想以英国 (dd/mm/yyyy) 格式输出 ageOnLastSeptember 日期。谁能告诉我如何实现这一目标?

$sql="select ( if(month(now()) < 9, year(now()) - 1, year(now())) - year(dob) - if(month(dob)<9, 0, 1)  ) as ageOnLastSeptember,first_name,last_name,dob,school,contact_no,family_id,contact_id from members_family where contact_id = '$contact_id' ";

我尝试了以下方法,但没有任何效果

$sql="select date_format(( if(month(now()) < 9, year(now()) - 1, year(now())) - year(dob) - if(month(dob)<9, 0, 1)  ), '%d/%m/%Y') as ageOnLastSeptember,first_name,last_name,dob,school,contact_no,family_id,contact_id from members_family where contact_id = '$contact_id' ";

【问题讨论】:

  • 什么数据库系统?
  • now() 表示我认为的mysql。
  • 这是 MySQL @Damien_The_Unbeliever
  • 这是一个常见问题。已经在这个网站上多次询问和回答。为什么我们要添加另一个答案? - php.net/datetime - php.net/strings

标签: php mysql date


【解决方案1】:

您不需要在数据库级别进行格式化。如果您将日期存储为日期(正确的方法),只需获取记录并将其发送给客户。应该在您用来显示这些日期的控件上进行格式化。

【讨论】:

  • 谢谢@danish。我也尝试在 PHP 中显示它并且很挣扎。我是一个新手。我之前的帖子不正确。这是我要格式化的 DOB 字段。这是我的 PHP 代码 - ".$rows['dob']."
  • 对不起,我不会做 PHP。我建议您将您的帖子标记为 PHP,然后等到有人帮助您在 PHP 中进行日期格式设置。
  • @user2281899 当前的 MySQL 输出是什么?它以什么格式出现?你能补充一下吗
  • @Sabari 现在是 2002-05-18
  • @user2281899 那么你希望它如何显示为 18/05/2002 或其他一些?
【解决方案2】:

我认为使用 PHP 格式化日期比使用 MySQL 格式化更容易和更好。从 MySQL 检索数据后,您可以使用 PHP 进行格式化,例如

$date = date("d/m/Y", strtotime('2002-05-18'));

输出将是:18/05/2002

所以你的 PHP 代码将是:

<td>". date("d/m/Y", strtotime($rows['dob'])) ."</td> 

更多关于 PHP 日期及其格式的信息可以在这里找到:http://php.net/manual/en/function.date.php

希望对你有帮助:)

【讨论】:

  • 太棒了!谢谢@Sabari
【解决方案3】:

不确定如何将年龄格式化为 DD/MM/YYYY 日期。似乎不合逻辑

要以天为单位获取年龄,您可以使用以下内容

SELECT FLOOR(NOW(), DATE_ADD(dob, INTERVAL (ABS(DATEDIFF(CONCAT(YEAR(DATE_ADD(NOW(), INTERVAL -8 MONTH)),':09:01'), NOW())) * -1) DAY)) AS Age
FROM members_family 
WHERE contact_id = '$contact_id'

这可以定制为以年为单位给出一个年龄(对于闰年来说要 100% 准确会有点棘手,特别是如果你想处理每 100 年不是闰年但每 400 年是闰年的情况)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多