2016-01-18 19 views
5

:SQL zaman damgasını sütun adı olarak nasıl yapabilirim? Örneğin

Bu işe yaramıyor
select count(*) as (select date_sub(curdate(),interval 4 day)) 
from userinfo 
where createTime > (select date_sub(curdate(),interval 4 day)); 

. 'As' dan sonra sözdizimi doğru değil diyor. Bu işi nasıl yaparım?

sonucun böyle olmasını istiyorum: Eğer değişken/alt sorgu olarak sütun adını tanımlayamazsınız Normal statik sorgusu ile

| |2016-01-14| 
|-|----------| 
|1| 1000 | 
+0

'Col1 seçin ..., date_sub (curdate(), aralık 4 gün)) ... dan ...' – jarlh

+1

Hayır, date_sub (curdate() yapmak istiyorum, aralık 4day) sütun adı olarak, yeni bir sütun olarak değil. – Kim

cevap

4

ancak dinamik SQL (prepared statements) ile elde edebiliriz:

SET @sql = 
    CONCAT('select count(*) as `',(select date_sub(curdate(),interval 4 day)),'` from userinfo where createTime > (select date_sub(curdate(),interval 4 day));'); 

PREPARE stmt FROM @sql; 
EXECUTE stmt; 
DEALLOCATE PREPARE stmt; 

SqlFiddleDemo

Çıktı:

╔════════════╗ 
║ 2016-01-14 ║ 
╠════════════╣ 
║   2 ║ 
╚════════════╝ 
İlgili konular