在 SQL 中,将字符串转换为日期(或时间戳)是一个常见的需求,这通常涉及到使用特定的日期函数或转换函数,具体取决于你使用的数据库系统。以下是在一些流行的数据库系统中将字符串转换为日期的示例:

  1. MySQL:

使用 STR_TO_DATE 函数。

SELECT STR_TO_DATE('2023-10-23', '%Y-%m-%d') AS converted_date;
  • 1.

如果你有一个包含时间的字符串,你可以这样写:

SELECT STR_TO_DATE('2023-10-23 14:30:00', '%Y-%m-%d %H:%i:%s') AS converted_datetime;
  • 1.
  1. PostgreSQL:

使用 CAST 或 :: 操作符(或 TO_TIMESTAMP 对于时间戳)。

SELECT CAST('2023-10-23' AS DATE) AS converted_date;
-- 或者
SELECT '2023-10-23'::DATE AS converted_date;

-- 对于时间戳
SELECT TO_TIMESTAMP('2023-10-23 14:30:00', 'YYYY-MM-DD HH24:MI:SS') AS converted_datetime;
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  1. SQL Server:

使用 CONVERT 函数或 CAST 操作符。

SELECT CONVERT(DATE, '2023-10-23', 120) AS converted_date;
-- 或者
SELECT CAST('2023-10-23' AS DATE) AS converted_date;

-- 对于日期时间
SELECT CONVERT(DATETIME, '2023-10-23 14:30:00', 120) AS converted_datetime;
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  1. Oracle:

使用 TO_DATE 函数。

SELECT TO_DATE('2023-10-23', 'YYYY-MM-DD') AS converted_date FROM DUAL;
-- 或者对于日期时间
SELECT TO_TIMESTAMP('2023-10-23 14:30:00', 'YYYY-MM-DD HH24:MI:SS') AS converted_datetime FROM DUAL;
  • 1.
  • 2.
  • 3.
  1. SQLite:

SQLite 没有直接的日期/时间数据类型,但你可以使用字符串并在需要时将其转换为日期/时间。对于日期和时间操作,SQLite 通常依赖于其他函数和操作符。但你可以直接存储和检索字符串格式的日期和时间。

请注意,日期/时间的格式和解析可能会因区域设置和数据库配置的不同而有所不同。因此,确保你使用的格式字符串与你的数据中的日期/时间字符串完全匹配。