如何在SQL Server 2008中使用TO_CHAR函数功能

use*_*052 3 sql-server sql-server-2008

我有一张桌子EMP.我知道如何TO_CHAR在TOAD中使用函数,但如果我在SQL Server 2008中使用,如何获得相同的输出.SQL Server中是否有任何转换函数TO_CHAR

请帮我在SQL Server中编写查询.

提前致谢...

 select * 
 from emp 
 where to_char(hiredate, 'yy') like '82';
Run Code Online (Sandbox Code Playgroud)

产量

     EMPNO  ENAME    JOB      MGR    HIREDATE       SAL   COMM   DEPTNO
     7934   MILLER   CLERK    7782   23-JAN-82     1300           10
Run Code Online (Sandbox Code Playgroud)

Lam*_*mak 6

假设它HIREDATE是一个DATEDATETIME数据类型,那么你可以这样做:

SELECT *
FROM emp
WHERE YEAR(HIREDATE) = 1982 -- I think that this is the year you want
Run Code Online (Sandbox Code Playgroud)

现在,HIREDATE如果存在索引,该代码将无法使用索引,因此您可以执行以下操作:

SELECT *
FROM emp
WHERE HIREDATE >= '19820101' 
AND HIREDATE < '19830101'
Run Code Online (Sandbox Code Playgroud)

另一方面,如果你真的想要使用这个LIKE '82'条件,意味着你想要1882年,1982年,2082年......的结果,那么你可以使用:

SELECT *
FROM emp
WHERE DATENAME(YEAR,HIREDATE) LIKE '%82'
Run Code Online (Sandbox Code Playgroud)