将 SQL 日期格式化为英国格式 [重复]

Posted

技术标签:

【中文标题】将 SQL 日期格式化为英国格式 [重复]【英文标题】:Formatting a SQL date into a UK format [duplicate] 【发布时间】: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 【参考方案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 年是闰年的情况)

【讨论】:

以上是关于将 SQL 日期格式化为英国格式 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL Server中 将日期格式化

将英国格式日期转换为日期时间

Bootstrap Datetimepicker 英国日期格式发布为美国格式

将 PHP MMddyyyyHHmmss 中的日期格式化为 m-d-y [重复]

sql 将任何日期格式化为当年的日期(以计算闰年)

AWS Athena (Presto) - 如何将时间戳格式化为日期格式?