Sql server 如何在MSSQL查询中将一位数更改为字符串

Sql server 如何在MSSQL查询中将一位数更改为字符串,sql-server,date,Sql Server,Date,CustomText1=一月至十二月字母列,因此转换为数字。 CustomText2=是数字格式的一天 我想把它转换成两位小数。有人能帮我写sql查询吗?请小心你的问题。您不需要一个十进制,而是需要一个字符串来连接其他字符串片段 这就是你想要的: SELECT a.AccountNumber, a.FirstName, a.LastName, a.Address, a.City, a.State, a.Zip, a.EmailAddress, a.PhoneNumber, a.LastUpd

CustomText1=一月至十二月字母列,因此转换为数字。
CustomText2=是数字格式的一天


我想把它转换成两位小数。有人能帮我写sql查询吗?

请小心你的问题。您不需要一个
十进制
,而是需要一个字符串来连接其他字符串片段

这就是你想要的:

SELECT 
a.AccountNumber, a.FirstName, a.LastName, a.Address, a.City, a.State, a.Zip, a.EmailAddress, 
a.PhoneNumber, a.LastUpdated, a.LastVisit, a.TotalSales, a.AccountOpened, a.CustomText4 as StoreCode, 
    CASE
        WHEN (a.CustomText1 = 'JAN') THEN '01' +'/'+a.CustomText2+'/'+a.CustomText3
        WHEN (a.CustomText1 = 'FEB') THEN '02' +'/'+a.CustomText2+'/'+a.CustomText3
        WHEN (a.CustomText1 = 'MAR') THEN '03' +'/'+a.CustomText2+'/'+a.CustomText3
        WHEN (a.CustomText1 = 'APR') THEN '04' +'/'+a.CustomText2+'/'+a.CustomText3
        WHEN (a.CustomText1 = 'MAY') THEN '05' +'/'+a.CustomText2+'/'+a.CustomText3
        WHEN (a.CustomText1 = 'JUN') THEN '06' +'/'+a.CustomText2+'/'+a.CustomText3
        WHEN (a.CustomText1 = 'JUL') THEN '07' +'/'+a.CustomText2+'/'+a.CustomText3
        WHEN (a.CustomText1 = 'AUG') THEN '08' +'/'+a.CustomText2+'/'+a.CustomText3
        WHEN (a.CustomText1 = 'SEP') THEN '09' +'/'+a.CustomText2+'/'+a.CustomText3
        WHEN (a.CustomText1 = 'OCT') THEN '10' +'/'+a.CustomText2+'/'+a.CustomText3
        WHEN (a.CustomText1 = 'NOV') THEN '11' +'/'+a.CustomText2+'/'+a.CustomText3
        WHEN (a.CustomText1 = 'DEC') THEN '12' +'/'+(select CONVERT(decimal(10,2),a.CustomText2))+'/'+a.CustomText3
    END AS DOB, GETDATE() as Extract_date
如果您实际将其转换为十进制,则尝试将其与
'/'
连接时会出现错误,以此类推


如果您需要最终结果为
date
类型,则将整个CASE语句强制转换或转换为该数据类型。

您可能对ROUNDWHEN(a.CustomText1='DEC')感兴趣,然后选择'12'+'/'+(选择ROUND(a.CustomeText2,decimal)+“/”+a.CustomText3不起作用。你能告诉我更多信息吗?你可能还想看看或。谢谢你的回复。我明白了。我需要一个字符串…我尝试过使用WHEN(a.CustomText1='DEC')然后使用'12'+“/”+RIGHT('0'+a.CustomeText2,2)+“/”+a.CustomText3不走运…..那么查询的另一部分中肯定有另一个错误。我在回答中给出的部分是正确的。请用您尝试的整个查询以及您得到的确切错误编辑您的问题。抱歉,您的查询是正确的!它确实有效!非常感谢!
...RIGHT('0'+a.CustomText2, 2)...