当 PHP 是您的主要语言时,在 SQL Server 数据库中存储日期/时间的首选格式是什么?

2024-03-16

我正在计划一个需要在 MSSQL 数据库中存储日期/时间的 PHP 应用程序。 (出于好奇,它是一个日历应用程序。)存储此信息的首选格式是什么?

MSSQL 有自己的日期时间数据类型,它在数据库本身中运行良好并且可读性很强。然而,没有任何 MSSQL 函数可以将日期时间值转换为 PHP 的首选格式——UNIX 时间戳。这使得使用 PHP 变得更加痛苦。 UNIX 时间戳很有吸引力,因为这是 PHP 喜欢的,但它的可读性肯定不那么好,而且没有一堆很好的内置 MSSQL 函数来处理数据。

您是否会将此信息存储为日期时间数据类型、UNIX 时间戳(如 int、bigint 或 varchar 数据类型)、并排存储这两种格式,还是完全存储为其他格式?


我将以 MS-SQL 格式存储日期,以帮助充分利用 T-SQL 中的日期操作函数。书写和阅读更容易

SELECT * FROM Foo
WHERE DateDiff(d,field1,now()) < 1

比尝试通过操作整数来执行等效操作

要将 MsSQL 日期转换为 unix 时间戳,请使用 dateDiff:

SELECT DATEDIFF(s,'1970-01-01 00:00:00',fieldName) as fieldNameTS
FROM TableName
WHERE fieldName between '10/1/2008' and '10/31/2008'

要将 Unix 时间戳转换为 MsSQL 日期,您可以在 PHP 中执行此操作:

$msSQLDate = date("Y-m-d H:i:s", $unixDate );

或者在MsSQL中

INSERT INTO TableName ( 
  fieldName
) VALUES (
  DATEADD(s,'1970-01-01 00:00:00', ? ) 
) 

其中参数一是 int($unixDate)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当 PHP 是您的主要语言时,在 SQL Server 数据库中存储日期/时间的首选格式是什么? 的相关文章

随机推荐