1. 时间和日期数据类型:
- DATE: 表示日期。
CREATE TABLE my_table (
my_date DATE
);
- TIME: 表示时间。
CREATE TABLE my_table (
my_time TIME
);
- TIMESTAMP: 表示日期和时间。
CREATE TABLE my_table (
my_timestamp TIMESTAMP
);
- INTERVAL: 表示时间间隔。
CREATE TABLE my_table (
my_interval INTERVAL
);
2. 当前时间和日期:
- CURRENT_DATE: 获取当前日期。
SELECT CURRENT_DATE;
- CURRENT_TIME: 获取当前时间。
SELECT CURRENT_TIME;
- CURRENT_TIMESTAMP: 获取当前日期和时间。
SELECT CURRENT_TIMESTAMP;
3. 日期和时间函数:
- EXTRACT: 从日期或时间中提取特定部分。
SELECT EXTRACT(YEAR FROM my_timestamp) AS year FROM my_table;
- AGE: 计算两个日期之间的间隔。
SELECT AGE('2022-01-01'::DATE, '2021-01-01'::DATE) AS age;
- TO_CHAR: 将日期或时间格式化为字符串。
SELECT TO_CHAR(my_timestamp, 'YYYY-MM-DD HH24:MI:SS') AS formatted_date FROM my_table;
4. 日期和时间运算:
- 加法和减法: 可以对日期和时间进行加法和减法运算。
SELECT my_timestamp + INTERVAL '1 day' AS tomorrow FROM my_table;
SELECT my_timestamp - INTERVAL '1 week' AS last_week FROM my_table;
5. 时区:
- AT TIME ZONE: 调整日期和时间的时区。
SELECT my_timestamp AT TIME ZONE 'UTC' AS timestamp_utc FROM my_table;
6. 示例:
-- 创建包含日期和时间的表
CREATE TABLE my_table (
my_date DATE,
my_time TIME,
my_timestamp TIMESTAMP,
my_interval INTERVAL
);
-- 插入数据
INSERT INTO my_table VALUES
('2022-01-01'::DATE, '12:30:00'::TIME, '2022-01-01 12:30:00'::TIMESTAMP, '1 day'::INTERVAL);
-- 查询当前日期和时间
SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;
-- 查询日期和时间的特定部分
SELECT EXTRACT(YEAR FROM my_timestamp) AS year, EXTRACT(MONTH FROM my_timestamp) AS month FROM my_table;
-- 计算两个日期之间的间隔
SELECT AGE('2022-01-01'::DATE, '2021-01-01'::DATE) AS age;
-- 格式化日期和时间为字符串
SELECT TO_CHAR(my_timestamp, 'YYYY-MM-DD HH24:MI:SS') AS formatted_date FROM my_table;
-- 日期和时间运算
SELECT my_timestamp + INTERVAL '1 day' AS tomorrow FROM my_table;
-- 时区调整
SELECT my_timestamp AT TIME ZONE 'UTC' AS timestamp_utc FROM my_table;
这些是 PostgreSQL 中处理时间和日期的一些基本概念和用法。PostgreSQL 提供了丰富的日期和时间函数,使得处理和操作时间数据变得非常灵活。
转载请注明出处:http://www.zyzy.cn/article/detail/14155/PostgreSQL