【问题标题】:Convert DateTime class to string [duplicate]将 DateTime 类转换为字符串 [重复]
【发布时间】:2013-03-03 15:43:05
【问题描述】:

目前我正在从 mssql 中检索数据类型为小日期时间的日期。

数据为:2013-03-12 00:00:00

我想将它存储在一个变量中,然后显示在一个文本框上。

而我想显示的格式只是文本框上的2013-03-12

我得到的信息是:

可捕获的致命错误:不能是 DateTime 类的对象 转换为字符串。

有什么想法吗?

【问题讨论】:

  • 您尝试的查询在哪里给出了该错误?请张贴。
  • 你是用 php 还是 sql 来做这个?
  • Select * from where id = xxx 表中的一列是 smalldatetime 类型
  • @DanBracuk 我正在尝试检索结果并分配给 php 变量。 $dateResult = $row[firstDate];
  • 那么你应该在 Mahmoud 的回答中使用 convert 函数。然后像我一样投赞成票并将其标记为答案。

标签: php sql sql-server string date


【解决方案1】:

在php中你可以简单地使用date_format($date, 'Y-m-d')

<?php
$date = date_create('2013-11-23 05:06:07');
echo date_format($date, 'Y-m-d');
?>

返回 2013-11-23

【讨论】:

    【解决方案2】:

    以下代码将为您提供可用于 SQL 的日期:

    $dateTime->format(\DateTime::ISO8601);
    

    -编辑-

    实际上,我只是看到你想要反过来。在这种情况下:

    $dateTime->format('Y-m-d');
    

    【讨论】:

    • 我不明白为什么这不是公认的答案...
    【解决方案3】:

    使用CONVERT:

    SELECT CONVERT(VARCHAR(10), datefield, 121)
    FROM tablename;
       
    

    【讨论】:

    • 我只是将日期字段替换为我在数据库中使用的列名?什么是 121?
    • @Genjo - 它确定转换的格式化日期的样式,121 它为您提供格式为:yyyy-mm-dd hh:mi:ss.mmm 的日期,然后将其转换为仅VARCHAR(10) 将给出你:yyyy-mm-dd.
    • 我更喜欢在表现层处理表现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多