我有以下几行SQL:
$key = 'transaction_user_id';
$user_ids = [];
$next_id = 1;
foreach ($your_data as $index => $transaction) {
if (isset($transaction[$key])) {
if (!isset($user_ids[$transaction[$key]])) {
$user_ids[$transaction[$key]] = $next_id++;
}
$your_data[$index][$key] = $user_ids[$transaction[$key]];
}
}
它重新调谐例如SELECT CONCAT(CONCAT(MONTH('YEAR-MM-01'), CONCAT(' ', YEAR('YEAR-MM-01'))), ' | ') AS period;
。我希望将3替换为3月
任何帮助都将受到欢迎。
答案 0 :(得分:3)
仅仅是因为没有人提到format()
需要明确的是,format()具有一些强大的功能,但性能可能会受到影响。应该少量使用。
示例
Select format(GetDate(),'MMMM, yyyy | ')
返回
April, 2019 |
答案 1 :(得分:2)
使用
datename(month, '2000/01/02')
您可以获得月份名称:
select concat(concat(datename(month,'YEAR-MM-01'),concat(' ',year('YEAR-MM-01'))),' | ') as period;
答案 2 :(得分:2)
使用类似这样的内容:
select
concat(
datename(month, getdate()),
' ',
year(getdate()),
' | '
) as period
如果您的输出以前是3 2019 |
,则查询看起来像这样March 2019 |
:
select
concat(
datename(month, cast('2019-03-01' as date)),
' ',
year(cast('2019-03-01' as date)),
' | '
) as period
答案 3 :(得分:1)
这适用于您的示例:
select datename(month, cast(replace('1 ' + v.str, ' ', '-') as date)) + right(str, 5)
from (values ('3 2019')) v(str)
答案 4 :(得分:1)
答案 5 :(得分:0)
使用DATENAME来获取月份的名称。
SELECT CONCAT(DATENAME(mm,'YEAR-MM-01'),'',YEAR('YEAR-MM-01'))