📖 Scenario: You are managing a simple employee attendance database. You want to record when employees check in each day.
🎯 Goal: Create a table to store employee check-ins with the current date and timestamp automatically recorded.
📋 What You'll Learn
Create a table named employee_checkins with columns employee_id (integer), checkin_date (date), and checkin_time (timestamp).
Insert a new check-in record for employee with ID 101 using CURRENT_DATE for the date and CURRENT_TIMESTAMP for the timestamp.
Write a query to select all records from employee_checkins.
💡 Why This Matters
🌍 Real World
Tracking employee attendance and timestamps is common in HR and payroll systems.
💼 Career
Understanding how to use CURRENT_DATE and CURRENT_TIMESTAMP is essential for database developers and administrators managing time-sensitive data.
Progress0 / 4 steps
1
Create the employee_checkins table
Write a SQL statement to create a table called employee_checkins with three columns: employee_id as INTEGER, checkin_date as DATE, and checkin_time as TIMESTAMP.
SQL
Hint
Use CREATE TABLE with the specified column names and types.
2
Insert a check-in record using CURRENT_DATE and CURRENT_TIMESTAMP
Write a SQL INSERT statement to add a record into employee_checkins with employee_id 101, checkin_date set to CURRENT_DATE, and checkin_time set to CURRENT_TIMESTAMP.
SQL
Hint
Use INSERT INTO with the exact values specified.
3
Query all check-in records
Write a SQL SELECT statement to retrieve all columns from the employee_checkins table.
SQL
Hint
Use SELECT * FROM employee_checkins; to get all records.
4
Add a comment explaining the use of CURRENT_DATE and CURRENT_TIMESTAMP
Add a SQL comment above the INSERT statement explaining that CURRENT_DATE stores the current date and CURRENT_TIMESTAMP stores the current date and time.
SQL
Hint
Use -- to add a comment explaining the two functions.
Practice
(1/5)
1. What does the SQL function CURRENT_DATE return?
easy
A. The current date without the time part
B. The current time without the date part
C. The current date and time together
D. The date and time of the last database update
Solution
Step 1: Understand the function purpose
CURRENT_DATE is designed to return only the date part of the current moment.
Step 2: Compare with other functions
CURRENT_TIMESTAMP returns date and time, but CURRENT_DATE excludes time.
Final Answer:
The current date without the time part -> Option A
Quick Check:
CURRENT_DATE = date only [OK]
Hint: CURRENT_DATE returns only date, no time included [OK]
Common Mistakes:
Confusing CURRENT_DATE with CURRENT_TIMESTAMP
Expecting time part in CURRENT_DATE
Thinking CURRENT_DATE returns last update time
2. Which of the following is the correct syntax to get the current date and time in SQL?
easy
A. SELECT CURRENT_DATE();
B. SELECT CURRENT_TIMESTAMP;
C. SELECT NOW();
D. SELECT CURRENT_TIME;
Solution
Step 1: Identify correct function syntax
CURRENT_TIMESTAMP is a standard SQL function and does not require parentheses.
Step 2: Check other options
CURRENT_DATE() is invalid syntax because CURRENT_DATE does not use parentheses; NOW() is valid in some databases but not standard SQL; CURRENT_TIME returns only time.
Final Answer:
SELECT CURRENT_TIMESTAMP; -> Option B
Quick Check:
CURRENT_TIMESTAMP syntax correct without parentheses [OK]
Hint: CURRENT_TIMESTAMP has no parentheses in standard SQL [OK]
Common Mistakes:
Adding parentheses to CURRENT_DATE or CURRENT_TIMESTAMP
Using NOW() assuming it's standard SQL
Confusing CURRENT_TIME with date and time
3. Given the SQL query:
SELECT CURRENT_DATE, CURRENT_TIMESTAMP FROM dual;
What will be the output format of CURRENT_TIMESTAMP?
medium
A. Only the date in YYYY-MM-DD format
B. A Unix timestamp number
C. Only the time in HH:MM:SS format
D. Date and time in YYYY-MM-DD HH:MM:SS format
Solution
Step 1: Understand CURRENT_TIMESTAMP output
CURRENT_TIMESTAMP returns both date and time, typically in the format YYYY-MM-DD HH:MM:SS.
Step 2: Compare with other options
CURRENT_DATE returns only date; time-only or Unix timestamp are not returned by CURRENT_TIMESTAMP.
Final Answer:
Date and time in YYYY-MM-DD HH:MM:SS format -> Option D
Quick Check:
CURRENT_TIMESTAMP = date + time [OK]
Hint: CURRENT_TIMESTAMP always includes date and time [OK]
Common Mistakes:
Expecting only date from CURRENT_TIMESTAMP
Thinking CURRENT_TIMESTAMP returns Unix timestamp
Confusing CURRENT_TIMESTAMP with CURRENT_TIME
4. You wrote this SQL query:
SELECT CURRENT_DATE(), CURRENT_TIMESTAMP() FROM users;
But it gives an error. What is the problem?
medium
A. CURRENT_DATE and CURRENT_TIMESTAMP should not have parentheses
B. The table name 'users' is missing quotes
C. CURRENT_DATE and CURRENT_TIMESTAMP are not valid SQL functions
D. You must use NOW() instead of CURRENT_TIMESTAMP
Solution
Step 1: Check function syntax
In standard SQL, CURRENT_DATE and CURRENT_TIMESTAMP are special functions without parentheses.
Step 2: Validate other parts
The table name 'users' does not require quotes; both functions are valid; NOW() is optional but not required.
Final Answer:
CURRENT_DATE and CURRENT_TIMESTAMP should not have parentheses -> Option A
Quick Check:
No parentheses with CURRENT_DATE/TIMESTAMP [OK]
Hint: Remove parentheses from CURRENT_DATE and CURRENT_TIMESTAMP [OK]
Common Mistakes:
Adding parentheses to CURRENT_DATE or CURRENT_TIMESTAMP
Thinking table names need quotes
Replacing CURRENT_TIMESTAMP with NOW() unnecessarily
5. You want to insert a new record into a table events with a column created_at that stores the exact date and time of insertion. Which SQL statement correctly uses CURRENT_TIMESTAMP for this purpose?
hard
A. INSERT INTO events (name, created_at) VALUES ('Launch', CURRENT_DATE);
B. INSERT INTO events (name, created_at) VALUES ('Launch', CURRENT_TIME);
C. INSERT INTO events (name, created_at) VALUES ('Launch', CURRENT_TIMESTAMP);
D. INSERT INTO events (name, created_at) VALUES ('Launch', NOW());
Solution
Step 1: Identify correct timestamp function
CURRENT_TIMESTAMP returns the full date and time, perfect for recording insertion time.
Step 2: Compare other options
CURRENT_DATE lacks time; NOW() may work but is not standard SQL; CURRENT_TIME returns only time, missing date.
Final Answer:
INSERT INTO events (name, created_at) VALUES ('Launch', CURRENT_TIMESTAMP); -> Option C
Quick Check:
Use CURRENT_TIMESTAMP for full date and time [OK]
Hint: Use CURRENT_TIMESTAMP to store date and time on insert [OK]
Common Mistakes:
Using CURRENT_DATE instead of CURRENT_TIMESTAMP
Using CURRENT_TIME missing the date part
Assuming NOW() is always standard SQL
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.