sqlserver 中一些常用的日期转换
一、日期格式转换:
1 | Select CONVERT(varchar(100), GETDATE(), 0): 09 16 2021 10:57AM |
二、常用
1 | Select CONVERT(varchar(100), GETDATE(), 23) --2021-09-16 |
–各国指定日期格式:
SELECT CONVERT(varchar(10),getdate(),120)
1 | 101 美国 mm/dd/yyyy |
三、DATENAME()
返回代表指定日期的指定日期部分的字符串。
语法
DATENAME ( datepart , date )
值 | 缩 写(Sql Server) | Access 和 ASP | 说明 |
---|---|---|---|
year | Yy | yyyy | 年 1753 ~ 9999 |
Quarter | q | 季 1 ~ 4 | |
Month | Mm | m | 月1 ~ 12 |
Day of year | Dy | y | 一年的日数,一年中的第几日 1-366 |
Day | Dd | d | 日,1-31 |
Weekday | Dw | w | 一周的日数,一周中的第几日 1-7 |
Week | Wk | ww | 周,一年中的第几周 0 ~ 51 |
Hour | Hh | h | 时0 ~ 23 |
Minute | Mi | n | 分钟0 ~ 59 |
Second | Ss | s | 秒 0 ~ 59 |
Millisecond | Ms | - | 毫秒 0 ~ 999 |
select GETDATE() as ‘当前日期时间’,
DateName(year,GetDate())+’-‘+DateName(month,GetDate())+’-‘+DateName(day,GetDate()) as ‘当前日期’,
DateName(quarter,GetDate()) as ‘第几季度’,
DateName(week,GetDate()) as ‘一年中的第几周’,
DateName(DAYOFYEAR,GetDate()) as ‘一年中的第几天’,
DateName(year,GetDate()) as ‘年’,
DateName(month,GetDate()) as ‘月’,
DateName(day,GetDate()) as ‘日’,
DateName(hour,GetDate()) as ‘时’,
DateName(minute,GetDate()) as ‘分’,
DateName(second,GetDate()) as ‘秒’,
DateName(MILLISECOND,GetDate()) as ‘豪秒’,
DateName(WEEKDAY,GetDate()) as ‘星期几’
select GETDATE() as ‘当前日期时间’,
DatePart(year,GetDate())+’-‘+DatePart(month,GetDate())+’-‘+DatePart(day,GetDate()) as ‘当前日期’,
DatePart(quarter,GetDate()) as ‘第几季度’,
DatePart(week,GetDate()) as ‘一年中的第几周’,
DatePart(DAYOFYEAR,GetDate()) as ‘一年中的第几天’,
DatePart(year,GetDate()) as ‘年’,
DatePart(month,GetDate()) as ‘月’,
DatePart(day,GetDate()) as ‘日’,
DatePart(hour,GetDate()) as ‘时’,
DatePart(minute,GetDate()) as ‘分’,
DatePart(second,GetDate()) as ‘秒’,
DatePart(MILLISECOND,GetDate()) as ‘豪秒’,
DatePart(WEEKDAY,GetDate()) as ‘星期几’
实际问题以及解决办法
问题需要获取yyyymm格式的月份
1 | select DateName(year,GetDate())+DateName(month,GetDate()) as '当月' |
结果返回
1 | 2021September |
经过查询,是数据库的编码字符不是中文(网络查到的原因,是否可信,待验证)
解决办法比较复杂,用其他方式实现
1 | select CONVERT(VARCHAR(6),GETDATE(),112) AS '当月' |
结果返回
1 | 202109 |