Буквально самый простой способ исправить NullReferenceExeption имеет два пути. Если у вас есть GameObject, например, с прикрепленным скриптом и переменной с именем rb (rigidbody), эта переменная начнет пустую, когда вы начнете игру. Вот почему вы получаете NullReferenceExeption, потому что на компьютере нет данных, хранящихся в этой переменной.
В качестве примера я буду использовать переменную RigidBody. Мы можем добавить данные действительно легко на самом деле несколькими способами:
rb = GetComponent<Rigidbody>();
. Эта строка кода работает лучше всего под ваши функции Start()
или Awake()
. rb = AddComponent<RigidBody>();
Дальнейшие заметки: если вы хотите, чтобы единство добавлялось компонент для вашего объекта, и вы, возможно, забыли добавить его, вы можете ввести [RequireComponent(typeof(RigidBody))]
над объявлением класса (пробел ниже всех ваших приложений). Наслаждайтесь и получайте удовольствие от игр!
Формат YYYY-MM-DD
недвусмыслен, что означает, что SQL Server не будет путать месяц и день при преобразовании строкового значения в DATETIME
. (Я никогда не испытывал проблемы с неявным преобразованием, используя этот формат, используя четырехзначный год.)
«Самый безопасный» (и наиболее удобный) способ хранения значений даты в SQL Server - использовать DATETIME datatype.
Используйте функцию CONVERT
для явного указания форматов ввода и вывода при преобразовании между DATETIME
и строками.
Документация по SQL Server 2005 в стиле CONVERT :
http://msdn.microsoft.com/en-us/library/ms187928 (SQL.90) .aspx
Чтобы преобразовать строковое представление в datatype DATETIME:
select CONVERT(datetime, '2009-06-03', 20)
Первым аргументом является тип данных для преобразования в, второй аргумент - это преобразованное выражение, третьим аргументом является стиль .
( style 20 is ODBC Канонический формат = 'YYYY-MM-DD HH:MI:SS'
(24-часовой режим)
[FOLLOWUP]
Чтобы преобразовать выражение DATETIME (например, getdate () в VARCHAR в формате 'YYYY-MM-DD'
:
select CONVERT(varchar(10), getdate(), 20)
Обратите внимание, что указание varchar (10) дает вам только первые 10 ch (f15)
[/ FOLLOWUP]
Что касается форматов по умолчанию, это будет исследование. Мы избегаем проблем, вызванных форматами по умолчанию, определяя форматы.
Обычно я предпочитаю вставлять в качестве
insert into tbl values('yyyyMMdd')
. Затем он будет вставлен в правильном формате на основе db.
Я согласен с советом от spencer7593, но, пожалуйста, имейте в виду, что использование приведения или преобразования без формата может дать неожиданные результаты. Этот запрос T-SQL возвращает 12, а не 1.
set language British
select month(CAST('2016-01-12' AS datetime))
Я немного консервативен в этих вопросах, но предпочитаю использовать отдельные поля Year / Month / Day в таблице, а не поле Date, которое использует тип данных, специфичный для СУБД.
Цена, которую вы платите, заключается в том, что вы не получаете бесплатную арифметику и сортировку по дате / времени, но это достаточно просто. сделать себя или несколько более сложным предложением ORDER BY.
Имейте в виду, что DATA не является его ПРЕЗЕНТАЦИЕЙ. В этом случае DATA является DATE или DATETIME, независимо от того, как вы их показываете. Что касается вставки / обновления / сравнения значений datetime, я цитирую BOL:
При указании дат в сравнении или для ввода в инструкции INSERT или UPDATE используйте константы, которые интерпретируются одинаково для всех языковых настроек : Приложения ADO, OLE DB и ODBC должны использовать временные метки ODBC, дату и время выхода: {ts 'yyyy-mm-dd hh: mm: ss [.fff]'}, например: {ts '1998- 09-24 10:02:20 '} {d' yyyy-mm-dd '}, например: {d' 1998-09-24 '} {t' hh: mm: ss '}, например: {t '10 : 02: 20 '}
blockquote>Могу вас заверить, что если вы будете использовать эти форматы, они всегда будут работать независимо от языка вашего сервера
См. SET DATEFORMAT . SQL-культура устанавливается на уровне SET LANGUAGE на уровне сеанса. SQL Server имеет собственные настройки формата даты, независимо от ОС хостинга. Это связано с несколькими причинами: соответствие ANSI, чтобы предотвратить изменения ОС в приложениях с использованием базы данных, размещенной на этом узле, и не в последнюю очередь это совместимость, SQL долго предшествует ОС в настоящее время работает.
Я бы рекомендовал хранить все даты в UTC, когда они помещаются в базу данных. Это будет согласованным.
Хранение таких дат, похоже, работает хорошо ...
YYYY-MM-DD