如何在SQL中使用GETDATE()作为列的标题?
如何在SQL中将GETDATE()设置为列标题?
嘿,这个问题我碰到过好多次——直接写SELECT GETDATE() AS GETDATE()肯定会踩坑,因为数据库会把GETDATE()当成函数来解析,而不是你想要的列别名。解决的核心就是用特定符号把别名包裹起来,明确告诉数据库这是一个字符串形式的列名,不同SQL方言的写法略有区别:
1. SQL Server 写法
SQL Server里最稳妥的是用方括号[]包裹别名,无需额外配置;也可以用双引号""(前提是开启QUOTED_IDENTIFIER设置):
-- 推荐:方括号写法,适配所有场景 SELECT GETDATE() AS [GETDATE()] -- 可选:开启QUOTED_IDENTIFIER后用双引号 SET QUOTED_IDENTIFIER ON; SELECT GETDATE() AS "GETDATE()"
2. MySQL 写法
MySQL需要用反引号`来包裹带特殊字符或与函数重名的别名:
-- 注意:MySQL里GETDATE()是CURDATE()的别名,要获取完整时间戳建议用NOW() SELECT NOW() AS `GETDATE()`
3. PostgreSQL 写法
PostgreSQL没有GETDATE()函数,用CURRENT_TIMESTAMP或NOW()替代即可,别名用双引号包裹:
SELECT CURRENT_TIMESTAMP AS "GETDATE()"
小提醒
虽然技术上能实现这种列名,但还是建议尽量避免用函数名或带特殊字符的列名——后续查询、维护的时候很容易混淆,徒增复杂度。如果是业务需求必须这么做,上面的方法就完全能解决问题啦。
内容的提问来源于stack exchange,提问作者user9703237
相关产品推荐
相关产品推荐

