首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当PHP是您的主要语言时,在SQL Server数据库中存储日期/时间的首选格式是什么?

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

Stack Overflow用户
提问于 2008-10-22 20:31:22
回答 3查看 19.5K关注 0票数 12

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

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

您会将此信息存储为datetime数据类型、UNIX时间戳( int、bigint或varchar数据类型)、两种格式并列存储,还是完全以其他形式存储?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-10-22 20:51:58

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

代码语言:javascript
复制
SELECT * FROM Foo
WHERE DateDiff(d,field1,now()) < 1

而不是尝试通过处理整数来执行等效操作。

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

代码语言:javascript
复制
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中完成:

代码语言:javascript
复制
$msSQLDate = date("Y-m-d H:i:s", $unixDate );

或在MsSQL中

代码语言:javascript
复制
INSERT INTO TableName ( 
  fieldName
) VALUES (
  DATEADD(s,'1970-01-01 00:00:00', ? ) 
) 

其中参数1是int($unixDate)

票数 13
EN

Stack Overflow用户

发布于 2008-10-22 20:36:45

我建议使用与任何数据库引擎中的所有日期相同的方法,即数据库原生类型。(DATETIME)

只需使用"YYYY-MM-DD HH:MM:SS“在php:date('Y-m-d H:i:s', $myTimeStampInSeconds);中插入

-edit在这里回应下面的评论-

SQL对于选定的列,您可以使用SQL strtotime( $yourColumnValue );

  • i建议以数据库本机格式存储,因为这样您就可以使用日期/时间函数(如DATEADD()等)来比较记录。
票数 5
EN

Stack Overflow用户

发布于 2008-10-23 10:52:19

大家好,祝大家愉快!

是的,这可能是最好的方式,将日期存储在db中,它们将采用db格式,您可以在需要的时候格式化

但是在ISO开发的国际日期格式中还有另一种解决方案,我指的是ISO8601。

ISO (ISO 8601)定义的国际格式试图通过如下定义数字日期系统来解决所有日期问题: YYYY-MM-DD其中

YYYY是所有数字的年份,即2100 MM是01 (1月)至12 (12月) DD是01至31天,视月份而定:P

使用数字日期在可读性和可用性方面也有一些缺陷它不是perfect.But日期格式,然而,对于普遍(和准确)可理解的日期表示来说,是最好的选择。

请注意,此格式还可用于表示带有时区信息的精确日期和时间

以下是有关ISO 8601:2000的详细信息

http://www.iso.org/iso/support/faqs/faqs_widely_used_standards/widely_used_standards_other/date_and_time_format.htm

没有更多的..。拜拜

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/227428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档