在sql中存储日期的最佳格式

时间:2014-01-08 01:33:00

标签: php mysql sql date

我正在尝试优化我在SQL / PHP网站上使用日期的方式。我熟悉date()strtotime()函数,并创建了在unix和datetime中在服务器端存储数据的项目。我知道更改日期并不会占用大量资源,但我正在努力了解如何以最有效的方式进行编码。

我现在想要解决的是在服务器上存储日期的最快/最有效的做法,即:SQL FROM_UNIXTIME,CONVERT,UNIX_TIMESTAMP和PHP strtotime的最有效组合是什么?和date函数,用于涉及日期字段的频繁CRUD的典型表。请看以下示例:

我有一个包含3个日期列的SQL表。所有这三个都可以由网站的多个用户定期更新,并且输入的条目如下:

mysql_query("INSERT INTO `regular` (
`regularid`,
`propertyid`,
`userid`,
`billdate`,
`billfrequency`,
`enddate`,
`amount`,
`description`,
`payee`,
`payer`,
`lastpayment` 
)
VALUES (
'', '{$_POST['propertyid']}', '$varuserid', FROM_UNIXTIME($date), '{$_POST['billfrequency']}', 'FROM_UNIXTIME($edate)', '$amount', '{$_POST['description']}', '{$_POST['payee']}', '{$_POST['payer']}', 'FROM_UNIXTIME($ldate)'
)") or die(mysql_error);

Print "A regular payment for &pound;".$_POST['amount']." has been created<br/>\n";

输入数据库我将日期字段从用户输入表单解析为mm / dd / yyyy格式的变量,使用strtotime()或mktime()函数对其进行验证,然后使用from_unixtime提交它。 / p>

但是,然后显示我使用的数据库中的信息:

   date("d-m-Y", strtotime($val['billdate']))

这意味着我从用户那里获取dd / mm / yyyy日期格式,从数据库中获取另一个。然后我使用strtotime将它们转换为unixtime,然后使用date将其转换回英国日期格式 - 这肯定会加倍?如果不是三倍?服务器查询。

我的问题分为两部分。 首先,它是最快的a)在six中将所有日期格式存储在unixtime中并通过服务器端查询转换为日期格式或b)以日期格式存储所有日期格式并仅在访问时转换为unixtime

(我认为后者会是最好的,但我上面的例子表明即使这样做,我似乎也在使用比我应该更多的服务器时间)

其次,你是否可以指出我应该如何执行我自己的脚本时间基准 - 我只是真正开始理解测试,因为我还是比较新的Php,但我很热衷学习。

非常感谢!

1 个答案:

答案 0 :(得分:3)

使用MySQL的“ unix_timestamp()”,它很简短,可以在一秒钟内使用php,bash等转换为可读的完整日期。

相关问题