mysql - 编写一个将时间戳转换为日期并添加小时数的查询

标签 mysql time timezone timestamp

我希望有人能帮我解决这个问题。我对 sql 和编程的了解非常初级。

我编写了一个如下所示的查询。

SELECT FROM_UNIXTIME(EventStartDate)                     
FROM mytable

这满足了我的需要——将时间戳转换为可读日期,但时间差了 5 小时。我想我的时间戳是 GMT,我在 -5:00。有什么方法可以增加 5 小时并转换为可读日期吗?

我很感激我能得到的任何帮助。

最佳答案

试试这个:

SELECT DATE_FORMAT(CAST(EventStartDate AS datetime), '%Y %M %D')  AS Date FROM mytable;

SELECT DATE_FORMAT(CAST(EventStartDate AS datetime), '%Y %m %d') AS Date FROM mytable;


SELECT DATE_FORMAT(CONVERT_TZ(EventStartDate,'+00:00','-05:00'),'%Y %m %d') AS Date FROM mytable;


SELECT DATE_FORMAT(CONVERT_TZ(EventStartDate,'+00:00','-05:00'),'%Y %M %D') AS Date FROM mytable;

-- with time

SELECT DATE_FORMAT(CAST(EventStartDate AS datetime), '%Y %M %D %h:%i:%s') AS Date_time FROM mytable;

SELECT DATE_FORMAT(CAST(EventStartDate AS datetime), '%Y-%m-%d %h:%i:%s') AS Date_time FROM mytable;


SELECT DATE_FORMAT(CONVERT_TZ(EventStartDate,'+00:00','-05:00'),'%Y-%m-%d %h:%i:%s') AS Date_time FROM mytable;


SELECT DATE_FORMAT(CONVERT_TZ(EventStartDate,'+00:00','-05:00'),'%Y %M %D %h:%i:%s') AS Date_time FROM mytable;

可读格式有些不明确,因此我尝试了一些您可能喜欢的格式。您甚至可能使用不同的语言,所以这很难回答。例如,您可以使用 SET lc_time_names = 'es_ES';SELECT DATE_FORMAT(CONVERT_TZ(EventStartDate,'+00:00','-05:00'),'%Y %M %D') FROM mytable; 获取您的西类牙语日期 ( PHP/MySQLi: SET lc_time_names and DATE_FORMAT() into a mysqli query? )。或者,如果您使用 PHP,则可以使用它以您自己的语言重新格式化。

SQL FIDDLE DEMO

在您的标题中,您说您需要将时间戳转换为日期。但是,您使用 from_unixtime 所以我的印象是您可能使用 VARCHAR 或 INT 作为您的列类型。在那种情况下你应该试试这个:

SELECT CONVERT_TZ(FROM_UNIXTIME(EventStartDate_INT),'+00:00','-05:00') AS Date_time FROM mytable;

SELECT CONVERT_TZ(FROM_UNIXTIME(EventStartDate_VARCHAR),'+00:00','-05:00') AS Date_time FROM mytable;

SELECT date_format(CONVERT_TZ(FROM_UNIXTIME(EventStartDate_INT),'+00:00','-05:00'),'%Y-%m-%d %h:%i:%s') AS Date_time FROM mytable;

SELECT date_format(CONVERT_TZ(FROM_UNIXTIME(EventStartDate_VARCHAR),'+00:00','-05:00'), '%Y-%m-%d %h:%i:%s') AS Date_time FROM mytable; 

SQL FIDDLE DEMO

关于mysql - 编写一个将时间戳转换为日期并添加小时数的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14794057/

相关文章:

time - 有人可以识别这个日期时间格式吗?

ruby-on-rails - yyyy-mm-ddThh :mm:ss. 000Z Ruby 中的日期格式

python - 如何获得给定时区的 UTC 时间 "midnight"?

javascript - 使用 momentjs 在最终用户的时区进行操作

javascript - 如何在 Rails 中正确管理用户的时区?

php - 如何在Joomla 3中获取离线用户列表?

php - MySQL任务的即时可视化

mysql - 从SQL语句中获取空集

linux - 是否有 wait3 的替代方法来在 shell 脚本中获取 usage 结构?

mysql - 在symfony2中创建表