【问题标题】:Change Default Date format getting from SQL server更改从 SQL 服务器获取的默认日期格式
【发布时间】:2019-12-04 09:42:53
【问题描述】:

我以'Jan 1 2019 12:00:00:AM'这种格式从数据库中获取日期值, 但我在我的网络应用程序中使用'2019-01-01' 格式。

我正在使用 LaravelSQL ServerCentos7Php 7

php.ini ddate 格式为ibase.timestampformat = "%Y-%m-%d %H:%M:%S"。

请帮助更改此默认格式。

【问题讨论】:

  • 听起来您的列不是日期和时间数据类型,而是(n)varchar。修复数据类型,修复问题。
  • 我的列数据类型是“日期”。
  • 那么它没有格式。您看到的格式由您的表示层定义。
  • 你到底想对日期做什么? SQL 查询还是只显示?
  • 在表示层中没有使用格式。该值是在 Laravel 中使用 dd 函数直接从查询中获取的。

标签: php sql-server laravel date


【解决方案1】:

问题可能出在您的 T-SQL 语句中。如果您的date 存储在datedatetimedatetime2 列中,当它被读取并转换为字符串(显式或隐式)时,就会出现此行为。

所以,我们可以:

DECLARE @Date DATETIME = GETUTCDATE()

SELECT CAST(@Date AS VARCHAR(36))

并获取Dec 4 2019 11:29AM。这就是为什么在 T-SQL 中我们可以在将日期转换为文本时设置style。例如:

DECLARE @Date DATETIME = GETUTCDATE()

SELECT CAST(@Date AS VARCHAR(36));          -- Dec  4 2019 11:33AM
SELECT CONVERT(VARCHAR(19), @DATE, 121);    -- 2019-12-04 11:33:52

【讨论】:

    猜你喜欢
    • 2016-01-25
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多