加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 16:35:19 所属栏目:PHP教程 来源:网络整理
导读:我正在计划一个需要在MSSQL数据库中存储日期/时间的 PHP应用程序. (对于好奇,它是一个日历应用程序.)存储此信息的首选格式是什么? MSSQL有自己的datetime数据类型,它在数据库本身中运行良好,非常易读.但是,没有任何MSSQL函数将datetime值转换为PHP的首选格
我正在计划一个需要在MSSQL数据库中存储日期/时间的 PHP应用程序. (对于好奇,它是一个日历应用程序.)存储此信息的首选格式是什么?

MSSQL有自己的datetime数据类型,它在数据库本身中运行良好,非常易读.但是,没有任何MSSQL函数将datetime值转换为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,? ) 
)

其中参数一是int($unixDate)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读