显示所有1月份出生的程序员的姓名和出生日期

问题描述 投票:0回答:2

我正在尝试使用日期时间来查找某个 PName 一月期间的出生日期 (DOB)。我有一个在 SQL Server 中工作的简短部分,但我想找出一月或第一个月的出生日期。它在 SQL Server 中适用于整个数据库,但是当我只想查找数据库的特定月份 (DOB) 时,我找不到正确的方法来纠正它。根据互联网上的甲骨文是这样写的:

SELECT DOB, NAME FROM PROGRAMMER WHERE TO_CHAR(DOB,'MON') LIKE 'JAN';

我正在尝试寻找 SQL Server - 具有 DOB 的程序员 - 比如说一月

Jan 出生日期的姓名和日期

SELECT TOP (1000) [Programmer_Id]
  , [PName]
  **, [DOB]**
  , [DOB2]
  , [DOJ]
  , [DOJ2]
  , [Gender]
  , [Prof1]
  , [Prof2]
  , [Salary]
  , [Salary2]
FROM [Studies_S_P_no_foreign].[dbo].[Programmer]


SELECT 
   DATEPART(month, DOB) [month] --@d2  DOB  '2019-01-01 14:30:14'
   --where DOB is like 1
From Programmer

[Programmer_Id],[PName], [DOB], [DOB2], [DOJ], [DOJ2], [Gender], [Prof1],  [Prof2], [Salary], [Salary2]
1   ANAND   1966-04-12 00:00:00.000 1966-04-01  1992-04-21 00:00:00.000 1992-04-21  M   PASCAL  BASIC   3200    3200.00
2   ALTAF   1964-07-02 00:00:00.000 1964-07-02  1990-11-13 00:00:00.000 1990-11-13  M   CLIPPER COBOL   2800    2800.00
3   JULIANA 1960-01-31 00:00:00.000 1960-01-31  1990-04-21 00:00:00.000 1990-04-21  F   COBOL   DBASE   3000    3000.00
4   KAMALA  1968-10-30 00:00:00.000 1968-10-30  1992-01-02 00:00:00.000 1992-01-02  F   C   DBASE   2900    2900.00
5   MARY    1970-06-24 00:00:00.000 1970-06-24  1991-02-01 00:00:00.000 1991-02-01  F   CPP ORACLE  4500    4500.00
6   NELSON  1985-09-11 00:00:00.000 1985-09-11  1989-10-11 00:00:00.000 1989-10-11  M   COBOL   DBASE   2500    2500.00
7   PATTRICK    1965-11-10 00:00:00.000 1965-11-10  1990-04-21 00:00:00.000 1990-04-21  M   PASCAL  CLIPPER 2800    2800.00
8   QADIR   1965-08-31 00:00:00.000 1965-08-31  1991-04-21 00:00:00.000 1991-04-21  M   ASSEMBLY    C   3000    3000.00
9   RAMESH  1967-05-03 00:00:00.000 1967-05-03  1991-02-28 00:00:00.000 1991-02-28  M   PASCAL  DBASE   3200    3200.00
10  REBECCA 1967-01-01 00:00:00.000 1967-01-01  1990-12-01 00:00:00.000 1990-12-01  F   BASIC   COBOL   2500    2500.00
11  REMITHA 1970-04-19 00:00:00.000 1970-04-19  1993-04-20 00:00:00.000 1993-04-20  F   C   ASSEMBLY    3600    3600.00
12  REVATHI 1969-12-02 00:00:00.000 1969-12-02  1992-01-02 00:00:00.000 1992-01-02  F   PASCAL  BASIC   3700    3700.00
13  VIJAYA  1965-12-14 00:00:00.000 1965-12-14  1992-05-02 00:00:00.000 1992-05-02  F   FOXPRO  C   3500    3500.00

空空空空空空空空空空空空空空空空

sql sql-server t-sql datetime-format
2个回答
1
投票

您可以通过多种方式在 SQL Server 中进行比较。以下是其中一些。

DECLARE @table table(DOB DATETIME)

INSERT INTO @table
values ('2019-01-01 14:30:14')

SELECT * FROM @table where MONTH(DOB) = 1
SELECT * FROM @table where DATENAME(mm,dob) = 'January'
SELECT * FROM @table where DATEPART(mm,dob) = 1

如果想做类似 Oracle 的 3 个字符月

SELECT * FROM @table where LEFT(DATENAME(mm,dob),3) = 'JAN' 

警告感谢@AlwaysLearning

日期名称设置为语言敏感。例如:对于一月,French=janvier; 意大利语=gennaio;德语=一月;西班牙语=埃内罗。如果你有一个 多文化数据库更喜欢使用月份或日期部分


0
投票

选择姓名、出生日期 来自程序员 其中月份(出生日期)= 01

© www.soinside.com 2019 - 2024. All rights reserved.