我在数据库"2048-05-21">中有一个看起来像这样的日期
我只想得到年份,在这一年我只想得到两个后退号码并将两个前面的数字更改为 19
例:
日期 : 2048-05-21
第一个结果 : 2048
第二个结果 : 48
第三名 : 1948
年第四个结果: 1948-05-21
SQL能做到吗?
isselect year(your_column)-100 from your_table
够了吗?我假设您的"日期"具有日期或日期时间的列类型。否则,必须使用子字符串 (https://www.w3schools.com/sql/func_mysql_substring.asp(
year
的第一个结果。- 第二个结果
year
函数SUBSTR
函数。 - 第三个结果
DATE_ADD
减去 100 年,然后使用year
函数。 - 第四个结果
DATE_ADD
减去100年
你可以试试这个。
SELECT year(col),
SUBSTR(year(col), 3, 2),
year(DATE_ADD(col,INTERVAL -100 YEAR)),
DATE_ADD(col,INTERVAL -100 YEAR)
FROM T
sqlfiddle:http://sqlfiddle.com/#!9/f3dd6f/8
结果
| 1 | 2 | 3 | 4 |
|------|----|------|------------|
| 2048 | 48 | 1948 | 1948-05-21 |
DECLARE @date DATE ='2048-05-21'
SELECT CAST(CAST(year(@date)-100 AS VARCHAR) + SUBSTRING(CAST(@date AS VARCHAR),5,6) AS DATE)
嗨,下面是基于您的查询的 sql 查询
声明@date日期 --声明日期变量 设置 @date='2048-05-21' --初始化日期
--第一个结果 选择年份(@date(
--第二个结果 选择子字符串(转换(varchar,year(@date((,3,2 (
--第三个结果 选择年份(@date(-100
--第四个结果 选择日期从部分 (年(@date(-100 , 月(@date(, 日(@date((