Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL查询以获取此月的所有客户端生日_Sql_Sql Server_Date - Fatal编程技术网

SQL查询以获取此月的所有客户端生日

SQL查询以获取此月的所有客户端生日,sql,sql-server,date,Sql,Sql Server,Date,我正在尝试创建一个查询,该查询将显示本月出生的所有客户,但我得到: 从字符串转换日期和/或时间时,转换失败。“ 这是我的密码 SELECT t.Client_id, t.Name FROM (SELECT Client_id, C_name + ' ' + C_surname AS Name, CONVERT(INT, SUBSTRING(Client_id, 3, 2)) AS M, CONVERT(

我正在尝试创建一个查询,该查询将显示本月出生的所有客户,但我得到:

从字符串转换日期和/或时间时,转换失败。“

这是我的密码

SELECT 
    t.Client_id, t.Name
FROM
    (SELECT  
         Client_id,
         C_name + ' ' + C_surname AS Name,
         CONVERT(INT, SUBSTRING(Client_id, 3, 2)) AS M,
         CONVERT(INT, SUBSTRING(Client_id, 5, 2)) AS D,
         CONVERT(DATE, CONVERT(VARCHAR, CONVERT(CHAR(4), DATEPART(YEAR, GETDATE())) + '-' + SUBSTRING(Client_id, 3, 2) + '-' + SUBSTRING(Client_id, 5, 2))) AS DateOfBirth
     FROM 
         tblClientInfo) T
WHERE 
    T.M <= 12 
    AND T.DateOfBirth = CONVERT(DATE, GETDATE());

嗯……我在想:

select c.*
from tblClientInfo c
where month(dateofbirth) = month(getdate());
试试这个:

select *
from tblClientInfo
where  CAST(SUBSTRING(Client_id, 3, 2) AS TINYINT) = month(getdate());

请提供示例数据和所需结果。列名
Client\u id
表示一个数值,并表示它是某种标识符。但您的逻辑处理(或转换)它是一个字符串,包含一个表示日期的格式化值。这里似乎有点错误。@SMor客户端id的前6个数字是生日,例如900829表示1990年8月29日
select *
from tblClientInfo
where  CAST(SUBSTRING(Client_id, 3, 2) AS TINYINT) = month(getdate());