我有以下数据:
KEY ID DATE
123456789 09BA2038 01-01-2017
我想连接它,但保留日期的原始格式。当我尝试:
CONCAT(Key, '-', ID, '-', DATE)
它给我输出
123456789-09BA2038-Jan 01 2017 11:00AM
但我希望输出为
123456789-09BA2038-01-01-2017
答案 0 :(得分:2)
如果您使用的是SQL Server 2012或更高版本,则可以使用FORMAT将日期或日期时间更改为具有您喜欢的格式的varchar。
select CONCAT([Key],'-',ID,'-',FORMAT([DATE],'MM-dd-yyyy')) as Key2
from (values (123456789,'09BA2038',convert(date,'2017-01-15',126))) v([Key],ID,[DATE]);
结果:
Key2
123456789-09BA2038-01-15-2017
或者您可以使用CONVERT代替使用110样式作为美国日期格式。
答案 1 :(得分:1)
您需要使用显式转换来获取所需的日期格式。
在这种情况下,render() {
const { meta: { active, error, submitFailed } } = this.props
return (
// ... rendering the input and then some
{ !active && (error && submitFailed) ? (
<span className="validation-error">{ error }</span>
) : null }
// ... rendering the rest
)
}
应该可以正常工作。
您可以在此处找到完整的格式列表:https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql
答案 2 :(得分:0)
转换日期,我猜您想要格式mm-dd-yyyy,如果是这样的话:
CONCAT([key],'-',[ID],'-',CONVERT(VARCHAR(10), [DATE], 110))
如果你想要dd-mm-yyyy,那就是:
CONVERT(VARCHAR(10), [DATE], 105)
答案 3 :(得分:0)
试试CONCAT(Key, '-', ID, '-', CONVERT(varchar(10),DATE, 110))
。 110
告诉SQL Server将日期格式化为&#39; mm-dd-yyyy&#39; (美式)。
有关此外观的更多信息here。
尼尔斯
答案 4 :(得分:-1)
我认为在这种情况下不使用concat更好 像这样:
select convert(nvarchar(100),KEY)+'-'+convert(nvarchar(100),ID)+'-'+convert(nvarchar(100),DATE)
from tableName