Конвертируем DATE в INT и INT в DATE (MSSQL)
Конвертируем DATE или DATETIME в INT (формата YYYYMMDD)
declare @dt datetime
set @dt = '09-22-2007 15:07:38.850'
select cast(convert(char(8),@dt,112) as int)
Конвертируем DATE или DATETIME в INT (формата YYYYMMDD)
declare @dt datetime
set @dt = '09-22-2007 15:07:38.850'
select cast(convert(char(8),@dt,112) as int)
Пример обрезки даты по минуты и по часы:
declare @dt datetime
set @dt = '09-22-2007 15:07:38.850'
select dateadd(mi, datediff(mi, 0, @dt), 0)
select dateadd(hour, datediff(hour, 0, @dt), 0)
Просто пример поиска нолей в конце у факториала.
public int TrailingZeroes(int n) {
int result = 0;
while(n!=0){
result += n/5;
n = n/5;
}
return result;
}
Дано:
Массив точек на плоскости: points[][] Xi и Yi.
Надо найти:
Сколько максимально точек принадлежит одной прямой.
Пример:
Как добавить в таблицу данные с Primary Key (когда надо этот первичный ключ игнорировать)
SET IDENTITY_INSERT tableA ON
-- Теперь можно делать список полей с Primary Key и добавлять записи так:
INSERT Into tableA ([id], [c2], [c3], [c4], [c5] )
SELECT [id], [c2], [c3], [c4], [c5] FROM tableB
-- Вот так нельзя "INSERT Into tableA SELECT ........"
SET IDENTITY_INSERT tableA OFF
Пример округления даты до часа и до минут
declare @dt datetime
set @dt = '09-22-2007 15:07:38.850'
select dateadd(mi, datediff(mi, 0, @dt), 0)
select dateadd(hour, datediff(hour, 0, @dt), 0)
Пример прокручивания/вращения массива Array K раз на C#
public static void Rotate(int[] nums, int k) {
int len = nums.Length;
int cnt = k%len;
if ((len<2)||(cnt==0)){return;}
int x = 0;
int val = nums[x];
int val_prev = nums[x];
int x_start = x;
for (int i = 0; i<len;i++)
{
x = x+cnt<len?x+cnt:(x+cnt)%len;
val_prev = nums[x];
nums[x] = val;
if (x_start == x)
{
x++;
val = nums[x];
x_start = x;
}
else
{
val = val_prev;
}
}
}
Смысл на примере:
Есть массив: [1,2,3,4,5]
Проворачиваем его 3 раза: K=3.
Результат:
[3,4,5,1,2]
Вообще процесс чистки логов должен проходить планово, и следить за этим и настраивать должен профессиональный админ. Однако бывает так что на вашем казалось бы небольшом девелоперском проекте для тестов логи неожиданно превысили установленный размер и возникла следующая проблема:
Сама проблема:
The transaction log for database 'база_данных' is full due to 'LOG_BACKUP'.
Проблему разумеется надо решать.
И вот как это делается:
Для обрезки лога используется вот эта команда:
DBCC SHRINKFILE(база_данных_log, 100);
При выполнении этой команды, LOG файл будет обрезан до 100 мегабайт.
Бывает так, что приходится заниматься преобразованием предложения на русском в русский текст но на латинице (транслит), например при отправки СМС для сокращения затрат — поскольку латиницей обычно и влазит больше и стоит дешевле. Или при приведении ссылок для сайта в удобный вид без кириллицы, или просто для пересылки информации для решения проблем с кодировкой таким экзотическим способом, вариантов где это может пригодиться довольно много.
В этой публикации будет приведен пример класса который реализует функционал транслитерации в двух стандартах: ГОСТ и ISO. При желании, разобравшись в коде (он довольно прост и компактен) можно легко добавить и другие стандарты, но приведенные два мне кажутся наиболее используемыми.
Данная публикация написана как простая инструкция для себя, на память, чтобы не забыть.
Предложенный вариант использовался для авторизации через токен VK в серверном приложении.
Для начала создадим метод отправки HTTP запроса и получения ответа от сервера:
/// <summary>
/// Отправляем запрос на получение
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
private static string GetRequest(string host, string req)
{
string str = "";
var Vk = new HttpClient();
Vk.DefaultRequestHeaders.Add("Connection", "close");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(req);
request.UseDefaultCredentials = true;
request.PreAuthenticate = true;
request.Credentials = CredentialCache.DefaultCredentials;
request.Method = "GET";
request.Host = host;
request.UserAgent = "RM";
request.ContentType = "application/x-www-form-urlencoded";
request.KeepAlive = false;
using (HttpWebResponse responsevk = (HttpWebResponse)request.GetResponse())
using (var stream = responsevk.GetResponseStream())
using (var streamReader = new StreamReader(stream, Encoding.UTF8))
{
str = streamReader.ReadToEnd();
}
return str;
}