2016-01-18 3 views
5

उदाहरण के लिए:मैं कॉलम नाम के रूप में एसक्यूएल टाइमस्टैम्प कैसे बना सकता हूं?

select count(*) as (select date_sub(curdate(),interval 4 day)) 
from userinfo 
where createTime > (select date_sub(curdate(),interval 4 day)); 

यह काम नहीं कर रहा। यह कहता है कि 'as' के बाद वाक्यविन्यास सही नहीं है। मैं यह काम कैसे पूरा कर सकता हूं?

मैं परिणाम इस तरह रहना चाहता हूँ:

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

'col1 का चयन करें, ..., date_sub (curdate(), अंतराल 4 दिन)) ... से ...' – jarlh

+1

नहीं, मैं date_sub (curdate() करना चाहते हैं, अंतराल 4day) कॉलम नाम के रूप में, इसे एक नए कॉलम के रूप में नहीं बनाते हैं। – Kim

उत्तर

4
सामान्य स्थिर क्वेरी आप चर/सबक्वेरी के रूप में स्तंभ नाम को परिभाषित नहीं कर सकते हैं

, लेकिन आप गतिशील एसक्यूएल (prepared statements) के साथ इसे प्राप्त कर सकते हैं:

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

आउटपुट:

╔════════════╗ 
║ 2016-01-14 ║ 
╠════════════╣ 
║   2 ║ 
╚════════════╝ 
संबंधित मुद्दे

 संबंधित मुद्दे