求sql server 2008中类似oracle中to_char转换日期格式函数,想得出月日的函数

1 . SQL SERVER不能直接写入日期和字符。
2 . 使用CONVERT 将日期转换为字符串。
3 . 项目:客户数据库,2 02 0。
4 、数字:转换前后字符长度相差1 5 5 .我还在测试不同版本的SQL SERVER的转换效果。
6 、自己掂量一下。

数据库中日期只取年月日

上周 检查从数据库日期获取年、月、日的方法。

Oracle 使用 TO_CHAR。
SELECT TO_CHAR(hire_date, 'yyyy-mm-dd') AS 年月日 FROM dmhr.employee; 可以将其转换为字符串格式。

或者使用 TRUNC。
SELECT TRUNC(hire_date, 'dd') AS 年月日 FROM dmhr.employee; 这将被截断为天,时间将变为 00:00:00。

PostgreSQL 和 MySQL SELECThire_date::date AS 年月日 FROM mytable; 或 SELECT DATE(hire_date) AS 年月日 FROM mytable; 如果直接转换为日期类型,时间就会丢失。

您还可以将时间戳转换为当前日期。
大梦是 SELECT TRUNC(SYSTIMESTAMP, 'dd') AS 年月日 FROM DUAL; PostgreSQL 是 选择 CURRENT_TIMESTAMP::date AS 年、月、日;
SQLServer 使用 CONVERT。
SELECT CONVERT(varchar(1 0), GETDATE(), 1 2 0) AS 年月日; 1 2 0 是格式代码,即 yyyy-mm-dd。

注意数据类型。
TRUNC 返回日期类型,TO_CHAR 返回字符串。

时区也会影响。
转换SYSTIMESTAMP时,要注意时区,避免混淆日期。

索引可能不会更新。
使用函数查找日期会破坏索引。
最好直接使用范围。
例如,查看 2 02 5 年 1 月 1 日至 1 月 3 1 日期间。
Rental_date 介于“2 02 5 -01 -01 ”和“2 02 5 -01 -3 1 2 3 :5 9 :5 9 ”之间 这么快。

算了。