Por: Jeffrey Yao | Atualizado em: 2019-08-06 | Comentários (3) | Relacionados: Mais > Datas
Problema
Desde o SQL Server 2012, temos uma nova função calledFORMAT(), ele é muito poderoso na formatação de data e hora e a valores numéricos,que são algumas boas utiliza esta função para ser usado no dia-DBA trabalho?
Solution
the SQL Server T-SQL FORMAT() function is in essence a CLR type system function, and as such, the .,As regras de formatação da rede aplicam-se a esta função. Esta função retorna um valor nvarcar (ou valor nulo).
no meu trabalho diário de DBA, esta função fornece muita conveniência que o otherwiseneed alguma conversão T-SQL desagradável e manipulação de string trabalho para obter a necessidade formatsI.,th>EnrollDate
Figura 1 – Relatório
Assumir a minha tabela de origem de dados e é como o seguinte:
Se queremos obter os dados apresentados como nos , precisamos calcular o que é uma coluna calculada com base na coluna.,/div>
Mas para se livrar da ambiguidade, podemos usar a função FORMAT() da seguinte forma:
declare @dt date='2019-June-08';select FORMAT(@dt, 'ddd') -- returns Sat
Então, para o nosso exemplo mencionado acima, nós podemos utilizar a seguinte consulta para obter thedesired resultado:
select EnrollDate, WeekDay=format(EnrollDate, 'ddd'), NewMembersfrom tempdb.dbo.NewAccount;
O resultado é:
Usar o SQL Server FORMATO para obter Vários Numérico Formatos de Exibição
Há muitas exigências sobre a forma de dados numéricos são apresentados, tais como thousandseparator a cada 3 dígitos, um sinal de porcentagem, uma moeda de um prefixo ou de um diferente formatwhen menos valor é encontrado., A tabela seguinte lista alguns formatos de valores mais usadosnuméricos.
uma utilização prática do formato é mostrada no seguinte exemplo, isto é, anteriormente quando preciso de verificar as contagens das linhas para tabelas numa base de dados, acho muito inconveniente descobrir quais são os números muito elevados sem o separador de vírgulas, especialmente quando você tem centenas de milhares de milhões de linhas ou mais. O seguinte código lista as linhas de cada tabela na base de dados .
a coluna tem uma vírgula para cada 3 dígitos, o que torna a leitura muito mais fácil do que a coluna.,
Use o formato do servidor SQL para mostrar a duração da execução de Tarefas do agente do servidor SQL
SQL.sysjobhistory tem uma coluna chamada, como mostrado abaixo:
Esta é uma coluna de número inteiro, quando eu precisar gerar um relatório, o que eu realmente quero thisto ser HH:MM:SS formato, por exemplo, se run_duration é 1, eu quero ser 00:00:01,mais exemplos estão listados na tabela a seguir.,
Run_value | Esperado Formato de Exibição |
---|---|
12 | 00:00:12 |
123 | 00:01:23 |
1234 | 00:12:34 |
12345 | 01:23:45 |
123456 | 12:34:56 |
251234 | 1d+01:12:34 |
Então, como podemos conseguir isso?
O truque aqui é que eu vou usar uma função não documentada mas simples em msdbdatabase, dbo.,agent_ DateTime, para compor um valor datetime, inserindo um valor fictício, como 20000101,para o parâmetro @date e usar a coluna para o parâmetro @time, e então usar o formato() para retornar o resultado formatado HH:MM:SS.
para ilustrar, vou criar uma tabela e populá-la com alguns dados simulando a coluna em dbo.mesa sysjobhistory.
com o seguinte código, posso converter o valor de HHMMSSint para HH: MM: SS valor de cadeia.,
o resultado é O seguinte, exatamente o que eu quero:
Resumo
nesta dica, temos revisitada theFORMAT() função introduzida no SQL Server 2012, e listamos alguns exemplos práticos thatotherwise são difíceis de implementar. A função fornece comodidade para o trabalho de relatório DBA e quando usado corretamente,a função ajuda a tornar o código conciso, fácil de entender e simples de manter.
I did not discuss about the culture parameter used in theformat () function., Este parâmetro de cultura pode ser muito útil em alguns trabalhos de formato culturerelated, tais como o sinal da moeda, nome do dia da semana, formato da data (ou seja, Ano/Mês/Dia/Dia/Ano, etc.). Em algumas empresas com escritórios em todo o mundo, podemos construir algumas consultas que irão gerar resultados compatíveis com a cultura.
próximas etapas
pode ler algumas outras boas dicas sobre MSSQLTips.com a falar do mesmo assunto.
Por favor, partilhe as suas próprias descobertas ou utilização criativa desta função.,
- Formato de SQL Server Datas com FORMATO de Função
- Novo FORMATO e CONCAT Funções no SQL Server 2012
- SQL Server função para converter a data de número inteiro para o formato de data / hora
Há também um artigo muito interessante discutir algumas deficiências oftheFORMAT() função.,
Última actualização: 2019-08-06
Sobre o autor
View all my tips
- More Database Developer Tips…