के साथ एक कहां खंड में एक तिथि() फ़ंक्शन का उपयोग करें जब मैं इस DQL क्वेरी निष्पादित मैं एक अजीब त्रुटि मिलती है:DQL
SELECT u FROM User u LEFT JOIN u.schedule s WHERE DATE(s.timestamp) = DATE(NOW())
अपवाद संदेश के साथ सिद्धांत से फेंक दिया जाता है:
Expected known function, got 'DATE'
समस्या this bug के समान दिखती है, लेकिन यह DATE() फ़ंक्शन को ग्रुप बाय क्लॉज में संबोधित करती है और बग सिद्धांत 2.2 के लिए बंद है। इस समय, मुझे सिद्धांत 2.4-डीवी के साथ अपवाद मिलता है।
क्वेरी आज के लिए निर्धारित सभी उपयोगकर्ताओं का चयन करने के लिए है। क्या मैं इस डीक्यूएल को बना सकता हूं? मैंने phpMyAdmin में SQL संस्करण का परीक्षण किया और वहां क्वेरी कोई त्रुटि नहीं उठाती है। क्या गलत हो सकता है?
सिद्धांत 2 डीक्यूएल में DATE() या अब() फ़ंक्शन नहीं है: http://doctrine-orm.readthedocs.org/en/latest/reference/dql-doctrine-query-language.html#dql- फ़ंक्शन । लेकिन क्या आप वास्तव में अपनी समानता पर दो टाइमस्टैम्प की तुलना करना चाहते हैं? – memoryleak
मैंने रोगियों को नियुक्ति के लिए निर्धारित किया है (दिनांक + समय) और मैं आज के लिए सभी मरीजों को सूचीबद्ध करना चाहता हूं। ऐसा करने के लिए एक बदसूरत तरीका है: "आज" के लिए एक php 'DateTime 'ऑब्जेक्ट के साथ कथन तैयार करें। और डेटाटाइम फ़ील्ड को "दिनांक" और "समय" भाग में विभाजित करें। मैं पहले बदसूरत भाग को दूर कर सकता हूं, लेकिन दूसरा सिर्फ आपके डीबी के साथ खराब हो रहा है क्योंकि एक अमूर्त परत समस्या है। इसलिए यही कारण है कि मैंने एक ऐसे समाधान की आशा की जहां यह काम करेगा :) मैंने 'SELECT CAST (DATE के रूप में s.timestamp) को शेड्यूल से दिन के रूप में आजमाया ... जहां शेड्यूल_डे =: आज' लेकिन यह एक समान त्रुटि लौटा ... –