SQL Server на самом деле хранит время как части дня. Например, 1 целый день = значение 1. 12 часов являются значением 0,5.
, Если бы Вы хотите сохранить временную стоимость, не используя тип ДАТЫ И ВРЕМЕНИ, храня время в десятичной форме, удовлетворил бы той потребности, также делая преобразование в ДАТУ И ВРЕМЯ простым.
, Например:
SELECT CAST(0.5 AS DATETIME)
--1900-01-01 12:00:00.000
Хранение значения, поскольку ДЕСЯТИЧНОЕ ЧИСЛО (9,9) использовало бы 5 байтов. Однако, если бы точность к не наибольшей важности, РЕАЛЬНОЕ использовало бы только 4 байта. В любом случае совокупное вычисление (т.е. среднее время) может быть легко вычислено на числовые значения, но не на типы Данных/Времени.
Чтобы получить это, вам необходимо используйте 3-й параметр для split ()
, который дает функции максимальное количество полей для разделения (если положительное):
my($first, $rest) = split(/\t/, $string, 2);
Нет. Он даст вам первые два предмета и выбросит остальные. Попробуйте следующее:
my ($k, $v) = split(/\t/, $string, 2);
Другой вариант - использовать простое регулярное выражение.
my($k,$v) = $str =~ /([^\t]+)\t(.+)/;