从select语句的另一列将新列添加到mysql中


Add new column into mysql from another column from select statement

我的数据库中有一个datetime()date_time

我需要将其转换为date(),并创建一个新的临时列date_field,直到会话结束

我试过这个:

$query1 = SELECT date_time, date(date_time) as date_field FROM table_name....

这将工作并创建一个临时列date_field,其中包含date_time字段的所有日期值

问题:这只适用于此查询。我还有另一个查询,它搜索date_time字段,从而导致DB错误Unknown field 'date_field'

$query2 = SELECT date_field FROM table_name
                                    | This table doesn't have date_field as a column

是否可以创建此字段,以便在会话结束前使用一段时间?就像我们为临时桌子做的那样?

注意:由于代码限制,我无法使用ALTER在此处添加新列。

有什么想法吗?

谢谢!

在第一个查询中,您并没有真正创建任何列,只返回一个列(date_time),对它运行一些函数(date())并给它一个别名(date_field)。这种情况只发生在结果集中,而且绝对不能在该查询之外使用。

您需要做的只是在第二个查询中使用相同的内容:您需要的不是select date field而是select date(date_time) as date_field