Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解析时间戳-是在MySQL中还是在PHP中?_Php_Mysql_Datetime - Fatal编程技术网

解析时间戳-是在MySQL中还是在PHP中?

解析时间戳-是在MySQL中还是在PHP中?,php,mysql,datetime,Php,Mysql,Datetime,假设您有一个带有timestamp列的表,您希望将该列解析为两个数组-$date和$time 你个人是否: a) 像这样查询日期(时间戳)、时间(时间戳),甚至可以查询到小时(时间戳)、分钟(时间戳) b) 抓取timestamp列,根据需要用PHP中的循环将其解析出来 我觉得(a)更容易。。。但我知道我什么都不知道。让我的查询在同一列中点击2到3次以获得输出,感觉有点淘气 这方面有最佳实践吗?(a)如果对您的代码库更方便的话,可能还可以。我非常喜欢不必编写不需要的额外代码,我喜欢只在必要时进行

假设您有一个带有
timestamp
列的表,您希望将该列解析为两个数组-
$date
$time

你个人是否:

a) 像这样查询日期(时间戳)、时间(时间戳),甚至可以查询到小时(时间戳)、分钟(时间戳)

b) 抓取
timestamp
列,根据需要用PHP中的循环将其解析出来

我觉得
(a)
更容易。。。但我知道我什么都不知道。让我的查询在同一列中点击2到3次以获得输出,感觉有点淘气

这方面有最佳实践吗?

(a)如果对您的代码库更方便的话,可能还可以。我非常喜欢不必编写不需要的额外代码,我喜欢只在必要时进行优化。对我来说,把整个日期拉出来,然后进行解析似乎是过早的优化

请始终记住,sql Server中有很多用于优化查询的智能,因此您不必这样做

所以选择a),如果你发现它速度慢或引起问题,那么选择b)。我怀疑a)会做你想做的一切,你永远不会再想它。

我个人会做(b)。无论如何,您都要循环行,PHP的
strotime()
date()
函数非常灵活,可以处理您遇到的大多数日期/时间格式问题

我倾向于尽量保持数据库结果集尽可能小,这样在数据库获取之后就不必处理大量的数组索引。我宁愿从结果行中提取一个时间戳,并在PHP中将其转换为多个值,而不必处理结果行中相同数据的多个表示形式,或者编辑SQL查询以获得特定的格式。

b)是我遵循的,我每次都使用它。它还让您能够灵活地控制它在前端的显示方式。考虑一下:如果您正在执行a)并希望进行更改,则需要手动更改所有查询。但是如果你使用b),你可以调用这个值的函数(从数据库),你就可以开始了。如果您需要更改任何内容,只需在此函数和viola中更改即可!对你来说,这听起来像是在节省时间吗


希望有帮助。

我也会使用b)。我认为重要的是,如果我在某个时候需要用另一种语言来命名日期或月份。我可以使用PHP语言环境支持将其翻译成给定的语言,但在a语言中就不是这样了。

我认为可以归结为这一点,编写PHP代码或mysql查询会让您感觉更自在吗


我认为这更多的是一个编码风格问题,而不是技术可行性问题,您可以选择自己的风格。

如果您在SQL查询本身中需要它(例如在
WHERE
groupby
ORDER BY
,等等),则首选方法a)。如果您更希望在代码逻辑(PHP或其他)中使用它,那么方法b)是首选

如果您的PHP代码实际执行了一项与SQL同样出色的任务,那么我也会这样做。换言之,只有当您将日期格式化为纯显示目的时,才首选方式b)