首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将STR_TO_DATE格式设置为日期

问将STR_TO_DATE格式设置为日期
EN

Stack Overflow用户
提问于 2009-05-20 18:05:44
回答 2查看 8.7K关注 0票数 1

您好,我已经能够使用string_to_date提取日期的VARCHAR,但是无论我尝试什么,日期总是像2009-05-25一样回显

下面是我的代码:

代码语言:javascript
复制
$query = "SELECT u.url_id, url, title, description, STR_TO_DATE( pub_date, '%d-%b-%Y') 
    AS pub_date FROM urls AS u, url_associations AS ua WHERE u.url_id = ua.url_id AND
    ua.url_category_id=$type AND ua.approved = 'Y' ORDER BY pub_date DESC";
$result = mysql_query ($query);
echo "  <tr>
<td align=\"left\">{$row['pub_date']}</td>
</tr>\n";

我已经尝试过DATE_FORMAT和类似的方法,但我要么收到2009-05-25,要么收到空白。有人能帮我解决这个问题吗?我正在寻找和测试,但我已经决定在这里寻求帮助,因为帮助是受欢迎的,并且那些以前帮助过的人非常友好。

谢谢

肖恩

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-05-20 18:25:05

STR_TO_DATE的返回类型为DATE,返回给PHP。

在echo中格式化日期的是PHP,而不是MySQL。

要在MySQL端进行格式化,请使用:

代码语言:javascript
复制
DATE_FORMAT(STR_TO_DATE( pub_date, '%d-%b-%Y'), '%Y.%m.%d')

或其他格式。

内部格式控制字符串在数据库中的存储方式,外部格式控制字符串的输出方式。

要在PHP端进行格式化(这会更好,因为您可以针对不同的用户使用特定于区域性的格式),请使用:

代码语言:javascript
复制
echo date('Y m d', strtotime($row['pub_date']))
票数 2
EN

Stack Overflow用户

发布于 2016-02-21 15:13:50

下面是this reference site的命令和输出

代码语言:javascript
复制
mysql> SELECT DATE_FORMAT('2009-10-04 22:23:00', '%W %M %Y');
        -> 'Sunday October 2009'
mysql> SELECT DATE_FORMAT('2007-10-04 22:23:00', '%H:%i:%s');
        -> '22:23:00'
mysql> SELECT DATE_FORMAT('1900-10-04 22:23:00',
    ->                 '%D %y %a %d %m %b %j');
        -> '4th 00 Thu 04 10 Oct 277'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
    ->                 '%H %k %I %r %T %S %w');
        -> '22 22 10 10:23:00 PM 22:23:00 00 6'
mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V');
        -> '1998 52'
mysql> SELECT DATE_FORMAT('2006-06-00', '%d');
        -> '00'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/889381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档