SQL Date ফাংশন
SQL য়াতে তারিখ
যখন আমরা তারিখ নিয়ে কাজ করি, তখন সবচেয়ে কঠিন কাজটি হল যে, ডাটাবেসের তারিখ কলমের ফরম্যাটের সাথে সাদৃশ্য রাখতে তারিখটির ফরম্যাটকে নিশ্চিত করা。
যখন তারিখটি শুধুমাত্র তারিখ অংশই থাকে, তখন কোর্সের সমস্যা নেই। কিন্তু, যখন সময়টি সংশ্লিষ্ট, তখন সমস্যা উপস্থিত হয়。
তারিখ কোর্সের জটিলতা নিয়ে আলোচনা করা আগে, আমরা সবচেয়ে গুরুত্বপূর্ণ একক তারিখ প্রক্রিয়াকরণ ফাংশনগুলি দেখুন。
MySQL Date ফাংশন
নিচের ট্যাবিলে MySQL-এর সবচেয়ে গুরুত্বপূর্ণ একক তারিখ ফাংশনগুলি তালিকাভুক্ত হল:
ফাংশন | বর্ণনা |
---|---|
NOW() | বর্তমান তারিখ এবং সময় ফিরিয়ে দেয় |
CURDATE() | বর্তমান তারিখ ফিরিয়ে দেয় |
CURTIME() | বর্তমান সময় ফিরিয়ে দেয় |
DATE() | তারিখ বা তারিখ/সময় এক্সপ্রেশনের তারিখ অংশ উদ্ধার করা |
EXTRACT() | তারিখ/সময় এর একক অংশ ফিরিয়ে দেয় |
DATE_ADD() | তারিখে নির্দিষ্ট সময় সমূহ যোগ করা |
DATE_SUB() | তারিখ থেকে নির্দিষ্ট সময় সমূহ হারানো |
DATEDIFF() | দুই তারিখের মধ্যে দিনগুলি ফিরিয়ে দেয় |
DATE_FORMAT() | বিভিন্ন ফরম্যাটে তারিখ/সময় প্রদর্শন |
SQL Server Date ফাংশন
নিচের ট্যাবিলে SQL Server-এর সবচেয়ে গুরুত্বপূর্ণ একক তারিখ ফাংশনগুলি তালিকাভুক্ত হল:
ফাংশন | বর্ণনা |
---|---|
GETDATE() | বর্তমান তারিখ এবং সময় ফিরিয়ে দেয় |
DATEPART() | তারিখ/সময় এর একক অংশ ফিরিয়ে দেয় |
DATEADD() | তারিখে নির্দিষ্ট সময় সমূহ যোগ করা অথবা হারানো |
DATEDIFF() | দুই তারিখের মধ্যে সময় ফিরিয়ে দেয় |
CONVERT() | বিভিন্ন ফরম্যাটে তারিখ/সময় প্রদর্শন |
SQL Date ডাটা টাইপ
MySQL য়াতে তার ডাটাবেসে তারিখ বা তারিখ/সময় মান সংরক্ষণ করার জন্য নিচের ডাটা টাইপগুলি ব্যবহার করে:
- DATE - Format YYYY-MM-DD
- DATETIME - Format: YYYY-MM-DD HH:MM:SS
- TIMESTAMP - Format: YYYY-MM-DD HH:MM:SS
- YEAR - Format YYYY or YY
SQL Server uses the following data types to store date or date/time values in the database:
- DATE - Format YYYY-MM-DD
- DATETIME - Format: YYYY-MM-DD HH:MM:SS
- SMALLDATETIME - Format: YYYY-MM-DD HH:MM:SS
- TIMESTAMP - Format: Unique Number
SQL Date Handling
If it does not involve the time part, we can easily compare two dates!
Assuming we have the following "Orders" table:
OrderId | ProductName | OrderDate |
---|---|---|
1 | computer | 2008-12-26 |
2 | printer | 2008-12-26 |
3 | electrograph | 2008-11-12 |
4 | telephone | 2008-10-19 |
Now, we want to select the records from the table above where OrderDate is "2008-12-26".
We use the following SELECT statement:
SELECT * FROM Orders WHERE OrderDate='2008-12-26'
Result Set:
OrderId | ProductName | OrderDate |
---|---|---|
1 | computer | 2008-12-26 |
3 | electrograph | 2008-12-26 |
Now assume that the "Orders" class is like this (note the time part in the "OrderDate" column):
OrderId | ProductName | OrderDate |
---|---|---|
1 | computer | 2008-12-26 16:23:55 |
2 | printer | 2008-12-26 10:45:26 |
3 | electrograph | 2008-11-12 14:12:08 |
4 | telephone | 2008-10-19 12:56:10 |
If we use the above SELECT statement:
SELECT * FROM Orders WHERE OrderDate='2008-12-26'
Then we do not get the result. This is because the query does not contain the date part with the time.
Tip:If you want to make the query simple and easier to maintain, do not use the time part in the date!