convert time()from sql for monthly sales php

dvtswwa3  于 2021-06-20  发布在  Mysql
关注(0)|答案(4)|浏览(330)

我想从sales表中进行月度销售,但我使用time()格式存储日期数据
例子:

UserID | Product | Date
1      | Hot Dog | 1504363230
4      | Chicken | 1504695631
1      | Potato  | 1504761716
3      | Spinach | 1505003789

那么,如果不将日期替换为日期(),我如何从那里创建月销售额呢?因为如果我要换30万排的话要花很长时间
我该怎么办?
选择*from sales,其中userid=userid,date=?
输出必须是这样的
userid 1在上个月执行2个事务或userid 1在本月执行3个事务

sy5wg1nm

sy5wg1nm1#

您可以使用from\ unixtime将unix时间戳转换为mysql中的datetime字符串。

SELECT FROM_UNIXTIME(`Date`) as `Datetime` FROM sales

然后可以使用其他日期函数(如月或年)对此进行扩展

SELECT MONTH(FROM_UNIXTIME(`Date`)) as `Month` FROM sales
ubof19bj

ubof19bj2#

编辑:
我觉得这个应该对你有用。我想你应该避免php的 date() 但mysql的 DATE() 没关系。

SELECT
    COUNT(*) AS nb_transaction,
    UserID
FROM
    sales
WHERE
    DATE(`Date`) LIKE '2018-06-%'

当然,把这个月换成你要找的那个月。
sql(将比php更快):
您可以使用 FROM_UNIXTIME() 任何格式:

FROM_UNIXTIME(`Date`, '%Y %D %M %h:%i:%s')

PHP:
这个 time() 函数返回unix时间戳。
如果要使用日期显示日期,可以使用 DateTime::setTimestamp :

$date = new DateTime();
$date->setTimestamp($row['Date']);
echo $date->format('Y-m-d H:i:s');    // Hot Dog = 2017-09-02 14:40:30

或者很快:

echo (new DateTime())->setTimestamp($row['Date'])->format('Y-m-d H:i:s');
pnwntuvh

pnwntuvh3#

$timestamp = 1517317337107; $date=date('Y-m-d H:i:s',
   $timestamp/1000); 
 echo "date and time : ". $date."<br>";
   $month=date('Y-m-d',$timestamp/1000);
 echo "only date : ".$month."<br>";

# output

date and time : 2018-01-30 13:02:17
only date : 2018-01-30

希望这会有帮助

3vpjnl9f

3vpjnl9f4#

php解决方案是使用 date 功能:

string date ( string $format [, int $timestamp = time() ] )

可选的timestamp参数是一个整数unix timestamp,如果没有给定时间戳,则默认为当前本地时间。换句话说,它默认为time()的值。

相关问题