×
          
              
          
      
      Clear all filters including search bar
          
        Valeri Tandilashvili's Personal Professional Blog
      
    SELECT 
    SYSDATE()
We can pass parameter precision to the function that indicates milliseconds and microseconds:SELECT 
    SYSDATE(6)
Maximum precision is 6, if we pass more than the supported number, we will get an errorSELECT 
    SYSDATE(7)After running the query, the following error will be generated:#1426 - Too big precision 7 specified for 'sysdate'. Maximum is 6NOW Returns current date and timeSELECT 
    NOW()UNIX_TIMESTAMP returns seconds since 1970-01-01 00:00:00 UTCSELECT 
    UNIX_TIMESTAMP()
If any date is passed to the function as a parameter, it will calculate seconds since 1970-01-01 00:00:00 to the passed date.
In this example, the function returns seconds to 2021-03-25 SELECT 
    UNIX_TIMESTAMP('2021-03-25')NOW Returns current date and timeSELECT 
    NOW()
Function UNIX_TIMESTAMP returns seconds since 1970-01-01 00:00:00 UTCSELECT 
    UNIX_TIMESTAMP()If any date is passed to the function as a parameter, it will calculate seconds since 1970-01-01 00:00:00 to the passed date.
In this example, the function returns seconds to 2021-03-25 SELECT 
    UNIX_TIMESTAMP('2021-03-25')
Function SYSDATE Returns current date and timeSELECT 
    SYSDATE()We can pass parameter precision to the function that indicates milliseconds and microseconds:SELECT 
    SYSDATE(6)
Function CURRENT_DATE returns current date with the following syntax:YYYY-MM-DD SELECT 
    CURRENT_DATE()
Function CURDATE returns current date with the following syntax:YYYY-MM-DD SELECT 
    CURDATE()
Function ADDDATE adds some amount of time to the specified dateSELECT 
    ADDDATE('2021-03-25', INTERVAL 8 DAY)
Function SUBDATE subtracts some amount of time from the specified dateSELECT 
    SUBDATE('2021-03-25', INTERVAL 30 DAY)
Function DATEDIFF Calculates the number of days between the two parameters.
In this example the function returns 12 which is the number of days between the datesSELECT 
    DATEDIFF('2021-03-25', '2021-03-13')The function returns negative number if the second date is greater than the first one.
In the example the result will be -12 SELECT 
    DATEDIFF('2021-03-13', '2021-03-25')
Function TIMESTAMPDIFF calculates the difference between two times.
The result is in unites that we want to measure the difference between the timesSELECT 
    TIMESTAMPDIFF(DAY, '2021-03-13', '2021-03-25')
Function MAKETIME takes three parameters as hour, minute and time and returns formatted time like: 18:15:19 SELECT 
    MAKETIME(18, 15, 19)
Function LAST_DAY takes date and returns the last date of the month.
In the example the result is 28 because the year is not leap yearSELECT 
    LAST_DAY('2021-02-15')
Function DATE_FORMAT returns formatted version of the datetime string passed as the first parameterSELECT 
    DATE_FORMAT('2022-03-25 18:24:14', '%Y-%m-%d %H:%i:%s')In this example we only need to get month and day with underscore between the valuesSELECT 
    DATE_FORMAT('2022-03-25 18:24:14', '%m_%d')UUID generates unique string combined with 32 alphanumeric symbols like: 8b652b09-8bb8-11eb-b0ac-b4b52f79163f
UUID stands for Universally Unique IDentifier and is designed to be unique inside table, across different tables, databases and even servers.
Let's add one column uuid_value to students table for UUID valuesALTER TABLE `students` 
ADD `uuid_value` VARCHAR(100) NOT NULL AFTER `id`;
Then update the table to assign UUID valuesUPDATE students
SET uuid_value = UUID();MATCH(column) AGAINST('keyword') syntax for columns with no FULLTEXT index.
Let's run the following query on column first_name that has not FULLTEXT index:SELECT * 
FROM students 
WHERE MATCH(last_name) AGAINST('გიორგი')Then we will get the error:#1191 - Can't find FULLTEXT index matching the column list
Note: MATCH(column) AGAINST('keyword') syntax can only be used on columns with FULLTEXT indexMATCH and AGAINST keywords are used for searching in columns with FULLTEXT index.
Searches in first_name column with გიორგი keywordSELECT * 
FROM students 
WHERE MATCH(first_name) AGAINST('გიორგი')FULLTEXT index for first_name column on students tableCREATE FULLTEXT INDEX ind_first_name ON students(first_name)CREATE TABLE IF NOT EXISTS note (
    id int AUTO_INCREMENT,
    note_id int,
    title varchar(50),
    description varchar(50),
    PRIMARY KEY(id),
    INDEX ind_note_id (note_id)
);
Creates the same INDEX  ind_note_id for note_id field on note table using ALTER TABLE CREATE TABLE IF NOT EXISTS note (
    id int AUTO_INCREMENT,
    note_id int,
    title varchar(50),
    description varchar(50),
    PRIMARY KEY(id)
);
ALTER TABLE note 
ADD INDEX ind_note_id (note_id);
Creates the same INDEX using CREATE INDEX statementCREATE TABLE IF NOT EXISTS note (
    id int AUTO_INCREMENT,
    note_id int,
    title varchar(50),
    description varchar(50),
    PRIMARY KEY(id)
);
CREATE INDEX ind_note_id ON note (note_id);UNIQUE index for students not to have duplicate notes.
The index is created with two fields student_id and title to make sure that student will not have more than one note with the same titleALTER TABLE `notes` ADD UNIQUE `unique_student_note` (`student_id`, `title`);
Note: Several notes with the same name are allowed if they are created by different authors