2010-06-09 139 views
1

我有一个moodle安装,其中mdl_user表中有一个名为firstaccess的列,其类型为bigint(10),并且包含以下格式的日期。转换日期格式

我正在根据日期过滤器编写一个用于访问用户的查询。对于例如我想检查哪些用户firstaccess大于'2010-04-12'。我如何转换日期?这两种日期格式是不同的。我认为firstaccess是unix时间戳。我应该将'2010-04-12'更改为unix时间戳还是有办法将firstaccess即1266839570转换为yyyy-mm-dd格式。

请帮我解决这个问题。

感谢

回答

1

您可以创建与mktime()功能PHP Unix时间戳,然后简单地把它放在你的查询。
MySQL有一个date_format()函数,它可以格式化日期,但是我不确定它是否适用于bigint。你最好用mktime

1

date()和mktime()是从unix时间戳到后面的函数。
你可以用任何方式转换你的日期

+0

sharpnel你能给如何使用mktime因为mktime具有以下语法的例子: mktime(小时,分,秒,月,日,年,is_dst) 但我的日期格式如下:1266839570 – 2010-06-09 09:36:09

+0

@Pankaj ** date()**用于格式化时间戳。日期()。示例可在手册页面上找到 – 2010-06-09 10:11:01

1

我不知道什么样的形式在表单中的日期,但你可以很容易地将其转换为一个时间戳使用mktime(如果它已经不是一个)。例如:

$mytimestamp=mktime(0,0,0, $month, $day, $year); 

然后,只需将它添加到您的查询:

$myQuery= "SELECT whatever FROM sometable WHERE " . $mytimestamp . ">=firstaccess"; 
1

像保罗一样Peelen,我的回答是MySQL查询。不过,我会以另一种方式,将第一次访问转换为日期。 使用在你的问题的最新信息:

SELECT * FROM mytable WHERE DATE_FORMAT(FROM_UNIXTIME(firstaccess), '%Y-%m-%d') > '2010-04-12';