FROM_UNIXTIME(unix_timestamp)是否支持子查询?

时间:2014-05-23 07:11:46

标签: mysql

我可以在MYSQL上运行此命令

SELECT FROM_UNIXTIME(1395301163); 

并获得所需的输出。 但是当我尝试运行时:

SELECT FROM_UNIXTIME(select signuptime from abc where sno=1);

它给了我错误。我认为FROM_UNIXTIME()方法只支持int中的unixtime。我有什么方法可以将unix时间戳从我的列(signuptime)转换为正常时间戳。

我有这个名为abc的表。 它有三列:

1.Sno(BIGINT)
2.expiry_date(Big_int) - 它包含bigint中的unix_timestamp 3.Status(VARCHAR)

它让我们说2行

1row S.no-1,expirydate-1395301163和status = ACTIVE。

第二次 S.no-2,expirydate-1195301203和status = ACTIVE。

所以现在我想要一个查询,将所有行的expirydate与currentdate进行比较,如果expirydate小于当前日期update status to inactive

2 个答案:

答案 0 :(得分:1)

为什么不用作

select FROM_UNIXTIME(signuptime) from abc where sno=1 ;

答案 1 :(得分:1)

要将SELECT查询用作表达式,您需要另一组括号:

SELECT FROM_UNIXTIME((select signuptime from abc where sno=1));

关于第二个问题,您需要这样做:

UPDATE abc
SET Status = 'inactive'
WHERE expiry_date < UNIX_TIMESTAMP(NOW());