数据库出生日期用啥类型比较好?datetime 或 varchar
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库出生日期用啥类型比较好?datetime 或 varchar相关的知识,希望对你有一定的参考价值。
您好:使用datetime类型可以便于查询,统计,筛选功能的实现。从功能扩展和后期维护上比varchar会好很多。
所以一定要使用datetime类型。 参考技术A datetime
无法将 PHP 值转换为日期类型。预期以下类型之一:null,DateTime [关闭]
【中文标题】无法将 PHP 值转换为日期类型。预期以下类型之一:null,DateTime [关闭]【英文标题】:Could not convert PHP value to type date. Expected one of the following types: null, DateTime [closed] 【发布时间】:2021-12-06 11:24:37 【问题描述】:我使用 fakerphp 创建了固定装置以生成假出生日期,但无法加载固定装置文件并收到此错误消息:无法将 PHP 值 '1970-01-01' 转换为类型日期。应为以下类型之一:null、DateTime。你知道我应该修改什么吗?
这是我的 php 实体文件代码的一部分:
/**
* @ORM\Column(type="date")
*/
private $birthDate;
public function getId(): ?int
return $this->id;
public function getEmailAddress(): ?string
return $this->emailAddress;
public function setEmailAddress(string $emailAddress): self
$this->emailAddress = $emailAddress;
return $this;
public function getBirthDate(): ?string
return $this->birthDate;
public function setBirthDate(string $birthDate): self
$this->birthDate = $birthDate;
return $this;
还有我的固定装置:
public function load(ObjectManager $manager):void
$faker = Factory::create(('fr_FR'));
$faker->seed(1234);
for ($i = 0; $i <= 20; $i++)
$member = new Member();
$member->setEmailAddress('user@test.com');
$member->setFirstName($faker->firstName());
$member->setLastName($faker->lastName());
$member->setbirthDate($faker->date($format ='Y-m-d', $max = '2004-31-12'));
$member->setPostalAddress($faker->address());
$password = $this->encoder->encodePassword($member, 'password');
$member->setPassword($password);
$manager->persist($member);
$manager->flush();
【问题讨论】:
date
方法创建一个 string 值。请改用$faker->dateTime
。
已经尝试使用$faker->dateTime
,但仍然出现错误:App\Entity\Member::setBirthDate(): Argument #1 ($birthDate) must be of type string, DateTime given, called in /src/DataFixtures/MemberFixtures.php on line 35
【参考方案1】:
birthDate 类型是“日期”,在你的设置器中你给一个字符串
您必须将您的设置器更改为此 -> setBirthDate(\DateTimeInterface $birthDate)
【讨论】:
非常感谢!我想我以前试过这个,但也应该更新我的吸气剂,给\DateTimeInterface
type Code is alays details以上是关于数据库出生日期用啥类型比较好?datetime 或 varchar的主要内容,如果未能解决你的问题,请参考以下文章
怎么让sql server 获取系统日期?(我意思是用啥语句)
java语言中,128位的文件hash值用啥数据类型存储比较好?要求定长。