我的数据库中有一个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