首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于日期时间字段查询

前言: 项目开发,一些业务表字段经常使用日期时间类型,而且后续还会牵涉到这类字段查询。关于日期时间查询等各类需求也很多,本篇文章简单讲讲日期时间字段规范化查询方法。...涉及到日期时间字段类型选择时,根据存储需求选择合适类型即可。 2.日期时间相关函数 处理日期时间字段函数有很多,有的经常会在查询中使用到,下面介绍下几个相关函数使用方法。...上面的内容都是为我们查询需求做准备,项目需求,经常会以日期时间为条件进行筛选查询。...有时候这类需求多种多样,下面我们来学习下关于日期时间字段查询写法。 首先,为了使查询更加准确,插入数据时也要按规范来插入。...真实情况下,某些查询可能更加复杂,特别是数据量很大时,根据时间字段查询往往会速度很慢,这时也要注意创建索引,最好能把时间字段转换为时间戳,因为整型查询和筛选会快些。

6.9K40
您找到你想要的搜索结果了吗?
是的
没有找到

分享8个Laravel模型时间戳使用技巧小结

默认情况下,Laravel Eloquent 模型默认数据表有 created_at 和 updated_at 两个字段。当然,我们可以做很多自定义配置,实现很多有趣功能。下面举例说明。 1....Laravel 自动填充 created_at / updated_at 时候,无法找到这两个字段。...这个属性确定日期在数据库存储格式,以及序列化成数组或 JSON 时格式: class Flight extends Model { /** * 日期时间存储格式 * *...并且 Laravel 不会尝试自动填充 created_at/updated_at 但是如果你想自动保存时间戳,您需要在迁移文件添加 created_at/updated_at,然后模型关联中加上...更新时间戳和关联时间戳 与上一个例子恰好相反,也许您需要更新 updated_at 字段,而不改变其他列。

3.7K31

Laravel代码简洁之道和性能优化

经过一番调研之后发现了一个堪称神器扩展:laravel-upsert 这个 Laravel 扩展为查询构建器和 Eloquent 添加了对 INSERT & UPDATE (UPSERT) 和 INSERT...你可以 Eloquent 模型中使用 UPSERT 和 INSERT IGNORE 查询。...->upsert(...); Eloquent ,所有版本 LumenHasUpsertQueries都需要该特性。...当然了还是有一些注意点和坑,下面分享一下 注意问题 要根据需求添加唯一索引 根据官方文档说明,我们model必须添加这行代码,才能以Eloquent方式用 use \Staudenmeir\...LaravelUpsert\Eloquent\HasUpsertQueries; 因为我们数据库时间是int类型,不是laravel默认时间格式,并且我们插入时间和更新时间也不是laravel默认字段

5.7K20

Laravel5.7 Eloquent ORM快速入门详解

时间戳 默认情况下,Eloquent 期望 created_at 和 updated_at 已经存在于数据表,如果你不想要这些 Laravel 自动管理数据列,模型类设置 $timestamps...该属性决定日期被如何存储到数据库,以及模型被序列化为数组或 JSON 时日期格式: <?...* * @var string */ protected $dateFormat = 'U'; } 如果你需要自定义用于存储时间字段名称,可以模型设置 CREATED_AT 和...); }); 现在,当调用模型 delete 方法时,deleted_at 列将被设置为当前日期时间,并且,当查询一个使用软删除模型时,被软删除模型将会自动从查询结果中排除。...举个例子, Eloquent 模型定义一个 $dispatchesEvents 属性来映射模型生命周期中多个时间点与对应事件类: <?

15K41

3分钟短文:Laravel Carbon自定义日期时间格式

引言 laravel引用了强大Carbon日期时间处理库用于日期时间操作, 并且在数据库格式化中使用该库。本文就说一说程序如何方便地使用 Carbon自定义格式。...学习时间 只要成功安装了laravel项目,已经内置了标准carbon库文件,比如说写入数据库字段 created_at 时是这样格式: $item['created_at'] => "2020...,模型逐步引入了更加丰富特性,比如说 casts 特性, 可以支持对模型数据查询后进行指定格式化操作,省却了不少繁琐操作。...或者laravel5使用 $dates 属性,功效与上面的方式相同: protected $dates = ['created_at', 'updated_at'] 读取时候,该字段都会返回一个null...模板打印默认格式日期时间字符串,可以这样使用: {{$user->created_at->toFormattedDateString()}} 写在最后 本文介绍了laravel模型 $casts

3.5K20

Laravel 7.0 timestamp 取出来时间8小时问题

部署博客后,评论时间不正确,比正常时间慢了8小时; 都是用 timestamp 字段存储时间,只有评论留言取出来时间8小时,其他没有页面没有; 时区改成PRC、缓存也清了, 但是就是不生效;...出现原因 数据库时间: 取出timestamp时间: 取出后转化成date时间: 排查原因: 其他方法输出时间没有问题; 原来是代码中进行了模型toArray或者toJSON方法...; 导致日期序列化格式不同; 修复问题 基类模型写入如下方法:写入当前模型也行,切勿改框架基类(如果改基类 composer update 就会没有了) /** * 为数组 / JSON...: 'Y-m-d H:i:s'); } 其实Laravel 7.0升级说明说了此问题:升级说明《Laravel 7 中文文档》(没有仔细看升级说明文档); 描述如下: 受影响可能性:高 Eloquent...: 'Y-m-d H:i:s'); } 该更改影响序列化为数组和 JSON 模型和模型集合,对数据库日期没有影响。

1.5K10

最为常用Laravel操作(1)-Eloquent模型

关闭时间戳记录 public $timestamps = false; 获取模型数据 // Eloquent all 方法返回模型表所有结果 $flights = App\Flight::all(...$query->where('votes', '>', 100); } /** * 只包含激活用户查询作用域 * * @return \Illuminate\Database\Eloquent...例如, 你可能想要使用 Laravel 加密器对存储在数据库数据进行加密, 并且 Eloquent 模型访问时自动进行解密....除了自定义访问器和修改器, Eloquent 还可以自动转换日期字段为 Carbon 实例甚至 将文本转换为 JSON ....你可以自定义哪些字段被自动调整修改, 甚至可以通过重写模型 $dates 属性完全禁止调整: class User extends Model { /** * 应该被调整为日期属性

26100

3分钟短文:Laravel ORM 模型用法纲要

引言 前两期为了说明laravel框架提供数据库操作能力,直接使用DB门面操作, 而没有引入更为强大eloquent orm功能。...从本期开始,我们就分次把 eloquent一些简要知识点,为大家提炼演示一下。主要以代码为主,配以简要说明。 ? 学习时间 Eloquent其实是一个 ActiveRecord 类型 ORM。...如果返回模型想要手动定制一下,那么查询结果集中,使用Collection提供格式化功能就好了。...Eloquent Collection,包含了Model模型集合。...你想要他们自动更新为当前系统时间,只需要添加这个配置项: public $timestamps = false; 存储日期时间格式,也可以自定义: protected $dateFormat = 'Ymd

69240

3分钟短文:Laravel说要用软删除,可不要真删

软删除 许多情况下,你不会真正想要从数据库删除记录,而是用一种不再在应用程序显示它们方式对其进行注释。这就是所谓软删除。...其实原理很简单,就是为模型追加一个全局作用域,为每个查询子句追加上如下筛选条件: WHERE deleted_at IS NULL laravel已经为我们写好这部分逻辑了,模型内引入如下trait:...类内引入trait,并手动指定修改器,也就是说deleted_at字段,我们使用 Carbon 进行实例化操作。...任何设置deleted_at为日期时间记录,都不会包含在任何查询结果,因此看起来已经被删除了。...如果你代码内要坚持查询全量数据,也包含软删除了数据,那么代码这样写: $events = Event::withTrashed()->get(); 写在最后 本文我们有重温了laravel模型软删除功能

2.1K00

3分钟短文 | Laravel SQL筛选两个日期之间记录,怎么写?

引言 今天说一个细分需求,模型,或者使用laravel提供 Eloquent ORM 功能,构造查询语句时,返回位于两个指定日期之间条目。应该怎么写? 本文通过几个例子,为大家梳理一下。...学习时间 假设有一个模型 Reservation,我们查询某个日期预订条目数,首先构造日期字符串,使用内置函数: $now = date('Y-m-d'); 返回当前日期。...to laravel你可以使用 whereBetween 这个查询子句。...当然了,上面的方法是SQL中直接进行筛选,如果查询结果限制条目本身比较少,也能充分利用索引,所以不担心查询速度,那么我们可以查询完成后,返回 Eloquent Collection 集合上,...如果考虑初始查询条件圈定记录条目过多,会对MySQL造成流量压力,那么SQL阶段直接筛选出最精准记录,无疑是个好习惯。whereBetween 模型里链式调用毫无压力: ?

3.2K10

3分钟短文:Laravel 检查记录是否被软删除

引言 laravel模型引入了SoftDeletes这个全局作用域用于将数据库条目 标记为删除,而实际上并不清除数据,这样可以为后续数据恢复做铺垫。...学习时间 使用软删除功能,比较简单,只需要在模型中使用如下代码类: use Illuminate\Database\Eloquent\SoftDeletes; class User extends Model...{ use SoftDeletes; } 如果数据库表中正好是使用 deleted_at 标记删除日期时间,那么无需手动指定该字段为软删除字段了。...使用了软删除功能后,会在模型查询方法上,默认追加 where deleted_at is null 那么如果使用了全量查询后,如何判断一个记录是否是已经软删除呢?laravel提供了这些功能。...写在最后 本文通过对laravel模型软删除源码分析, 为大家展示了引入软删除功能,并自定义软删除标记字段方法。通过模型提供方法,进而判断记录是否已软删除。

1.4K30

通过 Laravel Eloquent 模型实现简单增删改查操作

「ActiveRecord」是 ORM 一种实现模式,Eloquent 则是 Laravel「ActiveRecord」。...Eloquent 默认约定每张表都有 created_at 和 updated_at 字段(迁移类 table->timestamps() 会生成这两个字段),并且保存模型类时会自动维护这两个字段...如果你数据表里面不包含这两个字段,或者只包含一个,都需要设置 public $timestamps = false; 或者通过 CREATED_AT 和 UPDATED_AT 常量来设置自定义创建和更新时间字段...实际上,Eloquent 模型类底层查询也是基于查询构建器来实现,你可以模型类上调用所有查询构建器 Where 查询方法,同样是以流接口模式构建方法链调用即可。...,就等同于掌握了 Laravel 所有数据库查询操作。

7.9K20

laravel框架模型和数据库基础操作实例详解

分享给大家供大家参考,具体如下: laravel分为三大数据库操作(DB facade[原始查找],查询构造器[Query Builder],Eloquent ORM): use Illuminate\...,[5]); 2.查询构造器[Query Builder] laravel查询构造器提供了方便流畅接口,用来建立及执行数据库查找语法。...; 3.Eloquent ORM 1.简介、模型建立及查询数据 简介:laravel所自带Eloquent ORM 是一个ActiveRecord实现,用于数据库操作。...新增数据、自定义时间戳、批量赋值 (1)使用save方法新增 laravel会默认维护created_at,updated_at 两个字段,这两个字段都是存储时间戳,整型11位,因此使用时需要在数据库添加这两个字段...,默认取得是按日期格式化好时间戳,如果想取得原本时间戳,则在模型里增加asDateTime方法。

2.8K20

Laravel基础

一、Laravel核心目录文件介绍 app:程序核心代码和业务逻辑代码,其中Http目录是我们业务逻辑存放点 bootstrap:包含框架启动和自动加载文件 config:包含所有程序配置文件..., ['abcd']); laraevl内置函数dd,可人性化打印数组:dd($result); 3.2 数据库操作 - 查询构造器 3.2.1 查询构造器简介 Laravel 查询构造器(query...$result = Student::count(); 3.2 Eloquent ORM 增加数据、自定义时间戳及批量赋值 ?...//使用时间戳存入数据库 protected function getDateFormat() { return time(); } //将数据库里时间戳取出时不被转换为日期 protected...,也可以有内容,还可以被子模版扩展 view,模板继承: 用@extends('模板名') 模板重写: @section('重写部分名字') 重写内容 @stop @yield

7.7K30

laravel model模型定义实现开启自动管理时间created_at,updated_at

时间戳 默认情况下,Eloquent 期望 created_at 和updated_at 已经存在于数据表,如果你不想要这些 Laravel 自动管理数据列,模型类设置 $timestamps...php namespace App; use Illuminate\Database\Eloquent\Model; class Flight extends Model { /**...* 表明模型是否应该被打上时间戳 * * @var bool */ public $timestamps = false; } 如果你需要自定义时间戳格式,设置模型 $dateFormat...该属性决定日期被如何存储到数据库,以及模型被序列化为数组或 JSON 时日期格式: <?...* 模型日期存储格式 * * @var string */ protected $dateFormat = 'U'; } 以上这篇laravel model模型定义实现开启自动管理时间

1.4K31

需要掌握 Laravel Eloquent 搜索技术

本文将带领大家学习 MySQL 和 Eloquent 搜索模块设计相关技术。 基本 Eloquent Where 查询 作为首个要讲解搜索功能,我们先不涉及新知识点。... Laravel 可以使用 where 方法实现对给定字段和给定值进行比较查询,就是这样简单。 <?...即可以查询以指定字符开始或结尾数据,也可以查询包含指定字符数据。模糊查询我们需要对依稀记得部分数据进行查询时非常实用。...Laravel 也可以轻松执行对 JSON 数据查询,这得益于 Laravel 良好 JSON 支持。 不过深入研究之前需要注意一点是:谨记 JSON 列存储是 区分大小写 。...但是这并不是我们需要关注,我们需将待查询字符串传给 where 语句即可。返回结果集即会包含完全匹配数据,也会包含发音近似的数据。 总结 Laravel 为我们提供了简单实用查询功能。

3.5K10
领券