Php 更改从SQL server获取的默认日期格式

Php 更改从SQL server获取的默认日期格式,php,sql-server,laravel,date,Php,Sql Server,Laravel,Date,我以这种格式从数据库中获取日期值'2019年1月1日12:00:00:AM', 但我在web应用程序中使用了'2019-01-01'格式 我使用的是Laravel、sqlserver、Centos7和php7 在php.iniddate格式为ibase.timestampformat=“%Y-%m-%d%H:%m:%S” 请帮助更改此默认格式。问题可能在您的T-SQL语句中。如果读取并转换为字符串(显式或隐式)时,date存储在date、datetime或datetime2列中,则会出现此行为

我以这种格式从数据库中获取日期值
'2019年1月1日12:00:00:AM'
, 但我在web应用程序中使用了
'2019-01-01'
格式

我使用的是LaravelsqlserverCentos7php7

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


请帮助更改此默认格式。

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

因此,我们可以:

DECLARE @Date DATETIME = GETUTCDATE()

SELECT CAST(@Date AS VARCHAR(36))
并获取2019年12月4日上午11:29的
。这就是为什么在T-SQL中,我们可以在将日期转换为文本时设置时间。例如:

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

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

因此,我们可以:

DECLARE @Date DATETIME = GETUTCDATE()

SELECT CAST(@Date AS VARCHAR(36))
并获取2019年12月4日上午11:29的
。这就是为什么在T-SQL中,我们可以在将日期转换为文本时设置时间。例如:

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

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