mysql - 选择查询中获取的两列的差异

标签 mysql sql

我已获取两列 checkin_datebooking_time ,如下所示。我如何获得由此创建的两列的差异?

SELECT CAST(CONCAT(MID(Checkin,7,4) , '-' 
  , MID(Checkin,1,2)  , '-' 
  , MID(Checkin,4,2))
 AS DATETIME) as Checkin_Date,

 CAST(CONCAT(MID(Book_Time,7,4) , '-' 
  , MID(Book_Time,1,2)  , '-' 
  , MID(Book_Time,4,2))
 AS DATETIME) as Booking_Date

FROM rl_transactional.mydb

我尝试在 FROM rl_transactional.mydb 之前执行 Checkin_Date - Booking_Date,但出现错误

Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Checkin_Date - Booking_Date FROM rl_transactional.mydb' at line 16

编辑:根据建议,我使用了以下查询

SELECT CAST(CONCAT(MID(Checkin,7,4) , '-' 
  , MID(Checkin,1,2)  , '-' 
  , MID(Checkin,4,2))
 AS DATETIME) as Checkin_Date, 

CAST(CONCAT(MID(CheckOut,7,4) , '-' 
  , MID(CheckOut,1,2)  , '-' 
  , MID(CheckOut,4,2))
 AS DATETIME) as CheckOut_Date,

 CAST(CONCAT(MID(Book_Time,7,4) , '-' 
  , MID(Book_Time,1,2)  , '-' 
  , MID(Book_Time,4,2))
 AS DATETIME) as Booking_Date,

Checkin_Date - Booking_Date
from (
    SELECT CAST(CONCAT(MID(Checkin,7,4) , '-' 
      , MID(Checkin,1,2)  , '-' 
      , MID(Checkin,4,2))
     AS DATETIME) as Checkin_Date,
     CAST(CONCAT(MID(Book_Time,7,4) , '-' 
      , MID(Book_Time,1,2)  , '-' 
      , MID(Book_Time,4,2))
     AS DATETIME) as Booking_Date
    FROM rl_transactional.mydb
) c,
FROM rl_transactional.mydb

我遇到以下错误

Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Checkin_Date - Booking_Date from ( SELECT CAST(CONCAT(MID(Checkin,7,4) , '-'' at line 1

最佳答案

尝试运行以下查询:

SELECT 
     c.Checkin_Date, 
     c.CheckOut_Date
     c.Booking_Date,
     c.Checkin_Date - c.Booking_Date
from (
    SELECT CAST(CONCAT(MID(Checkin,7,4) , '-' 
      , MID(Checkin,1,2)  , '-' 
      , MID(Checkin,4,2))
     AS DATETIME) as Checkin_Date,
     CAST(CONCAT(MID(Book_Time,7,4) , '-' 
      , MID(Book_Time,1,2)  , '-' 
      , MID(Book_Time,4,2))
     AS DATETIME) as Booking_Date,
     CAST(CONCAT(MID(CheckOut,7,4) , '-' 
      , MID(CheckOut,1,2)  , '-' 
      , MID(CheckOut,4,2))
     AS DATETIME) as CheckOut_Date
    FROM rl_transactional.mydb
) c;

关于mysql - 选择查询中获取的两列的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37256276/

相关文章:

mysql - 使用最大时间和时间总和检索记录,如果不同用户有相同时间,则获取具有最新创建日期的记录

mysql - 从两个不相关的 MySQL 查询中添加总计

php - 复杂的 codeigniter 用户搜索查询

MySql = :1 - what is that? 如何仅通过键而不是通过名称或文本值来关联数据?

sql - 如何指定要在 SQLite 输出中使用的记录分隔符?

sql - 自定义用户提供的过滤器,显示每个匹配项的数量

SWITCH CASE 语句中的 MySQL IF

php - 表中的MySQL ID编号

java - 不使用存储过程检索多个结果集

sql - GROUP BY 在 SQL 中使用参数